├── .checkstyle
├── .gitignore
├── .settings
└── gradle
│ └── org.springsource.ide.eclipse.gradle.core.prefs
├── .travis.yml
├── LICENSE.markdown
├── README.markdown
├── bootstrap
├── .settings
│ ├── org.eclipse.core.resources.prefs
│ ├── org.eclipse.core.runtime.prefs
│ ├── org.eclipse.jdt.core.prefs
│ └── org.eclipse.jdt.ui.prefs
└── src
│ ├── main
│ └── joist
│ │ ├── Bootstrap.java
│ │ └── Files.java
│ └── templates
│ ├── .factorypath
│ ├── .gitignore
│ ├── .settings
│ ├── org.eclipse.jdt.apt.core.prefs
│ ├── org.eclipse.jdt.core.prefs
│ └── org.eclipse.jdt.ui.prefs
│ ├── ProjectNameCycle.launch
│ ├── ProjectNameJetty.launch
│ ├── content
│ ├── WEB-INF
│ │ └── web.xml
│ └── index.htm
│ ├── src
│ └── main
│ │ ├── LogConfiguration.java
│ │ └── projectName
│ │ ├── Environment.java
│ │ ├── Registry.java
│ │ ├── cli
│ │ ├── Cli.java
│ │ └── JoistCli.java
│ │ ├── migrations
│ │ ├── m0000.java
│ │ └── m0001.java
│ │ └── webapp
│ │ ├── ProjectNameServlet.java
│ │ └── pages
│ │ ├── AbstractProjectNamePage.java
│ │ ├── IndexPage.java
│ │ └── index.htm
│ └── tests
│ ├── integration
│ └── projectName
│ │ ├── AbstractProjectNameIntegrationTest.java
│ │ └── domain
│ │ └── UserIntegrationTest.java
│ ├── unit
│ └── projectName
│ │ ├── AbstractProjectNameUnitTest.java
│ │ └── domain
│ │ ├── UserTest.java
│ │ └── builders
│ │ └── UserBuilder.java
│ └── web
│ └── projectName
│ ├── AbstractProjectNameWebTest.java
│ └── webapp
│ ├── pageObjects
│ ├── AbstractProjectNamePageObject.java
│ └── IndexPageObject.java
│ └── pages
│ └── IndexPageTest.java
├── build.gradle
├── cleanup.xml
├── docs
├── .gitignore
├── CNAME
├── _layouts
│ └── default.html
├── aliases.md
├── backPointers.md
├── build.xml
├── codeGeneration.md
├── css
│ └── SyntaxHighlighter.css
├── domainObjects.md
├── eagerLoading.md
├── eclipseTips.md
├── gettingStarted.md
├── highlights.md
├── index.md
├── js
│ ├── clipboard.swf
│ ├── flowplayer-3.2.8.min.js
│ ├── shBrushJava.js
│ ├── shBrushXml.js
│ └── shCore.js
├── migrations.md
├── patterns.md
├── performance.md
├── shims.md
├── typeSafeChangedProperties.md
├── typeSafeQueries.md
└── validationRules.md
├── domain-testing
├── .settings
│ ├── gradle
│ │ └── org.springsource.ide.eclipse.gradle.core.prefs
│ ├── org.eclipse.core.runtime.prefs
│ ├── org.eclipse.jdt.core.prefs
│ └── org.eclipse.jdt.ui.prefs
├── build.gradle
└── src
│ └── main
│ └── java
│ └── joist
│ └── domain
│ ├── AbstractDomainObjectsTest.java
│ ├── FlushTestDatabase.java
│ └── ValidationAssert.java
├── domain
├── .checkstyle
├── .settings
│ ├── gradle
│ │ └── org.springsource.ide.eclipse.gradle.core.prefs
│ ├── org.eclipse.core.resources.prefs
│ ├── org.eclipse.core.runtime.prefs
│ ├── org.eclipse.jdt.core.prefs
│ ├── org.eclipse.jdt.ui.prefs
│ └── org.moreunit.prefs
├── build.gradle
└── src
│ ├── main
│ └── java
│ │ └── joist
│ │ └── domain
│ │ ├── AbstractChanged.java
│ │ ├── AbstractDomainObject.java
│ │ ├── AbstractQueries.java
│ │ ├── Changed.java
│ │ ├── Code.java
│ │ ├── DomainObject.java
│ │ ├── Shim.java
│ │ ├── builders
│ │ ├── AbstractBuilder.java
│ │ └── DefaultsContext.java
│ │ ├── exceptions
│ │ ├── DisconnectedException.java
│ │ ├── DomainObjectsException.java
│ │ ├── NotFoundException.java
│ │ ├── OpLockException.java
│ │ └── TooManyException.java
│ │ ├── orm
│ │ ├── AliasRegistry.java
│ │ ├── Db.java
│ │ ├── EagerCache.java
│ │ ├── EagerLoading.java
│ │ ├── ForeignKeyCodeHolder.java
│ │ ├── ForeignKeyHolder.java
│ │ ├── ForeignKeyListHolder.java
│ │ ├── IdentityMap.java
│ │ ├── NamedUpdater.java
│ │ ├── Repository.java
│ │ ├── UnitTesting.java
│ │ ├── Updater.java
│ │ ├── impl
│ │ │ ├── InstanceDeleter.java
│ │ │ ├── InstanceInserter.java
│ │ │ ├── InstanceUpdater.java
│ │ │ ├── SequenceIdAssigner.java
│ │ │ ├── SortInstancesMySQL.java
│ │ │ └── SortInstancesPg.java
│ │ ├── mappers
│ │ │ ├── DataTransferObjectMapper.java
│ │ │ ├── DomainObjectMapper.java
│ │ │ ├── IdsMapper.java
│ │ │ └── ValuesMapper.java
│ │ └── queries
│ │ │ ├── Alias.java
│ │ │ ├── Clauses.java
│ │ │ ├── Delete.java
│ │ │ ├── Insert.java
│ │ │ ├── JoinClause.java
│ │ │ ├── Order.java
│ │ │ ├── PagedList.java
│ │ │ ├── Select.java
│ │ │ ├── SelectItem.java
│ │ │ ├── SetItem.java
│ │ │ ├── Update.java
│ │ │ ├── Where.java
│ │ │ └── columns
│ │ │ ├── Aggregate.java
│ │ │ ├── AliasColumn.java
│ │ │ ├── BooleanAliasColumn.java
│ │ │ ├── ByteArrayAliasColumn.java
│ │ │ ├── CalendarDateAliasColumn.java
│ │ │ ├── CodeAliasColumn.java
│ │ │ ├── ColumnExpression.java
│ │ │ ├── DateAliasColumn.java
│ │ │ ├── ForeignKeyAliasColumn.java
│ │ │ ├── IdAliasColumn.java
│ │ │ ├── IntAliasColumn.java
│ │ │ ├── LongAliasColumn.java
│ │ │ ├── MoneyAliasColumn.java
│ │ │ ├── ShortAliasColumn.java
│ │ │ ├── StringAliasColumn.java
│ │ │ └── TimePointAliasColumn.java
│ │ ├── uow
│ │ ├── Block.java
│ │ ├── BlockWithReturn.java
│ │ ├── BlockWithReturnAndSafety.java
│ │ ├── BlockWithSafety.java
│ │ ├── Snapshot.java
│ │ ├── UnitOfWork.java
│ │ └── UoW.java
│ │ ├── util
│ │ ├── Codes.java
│ │ ├── ConnectionSettings.java
│ │ ├── ListProxy.java
│ │ ├── converters
│ │ │ ├── CodeToStringConverter.java
│ │ │ ├── CodeToTextStringConverter.java
│ │ │ ├── DomainObjectToStringConverter.java
│ │ │ ├── DomainObjectToTextStringConverter.java
│ │ │ └── TextString.java
│ │ └── pools
│ │ │ ├── C3p0DataSourceFactory.java
│ │ │ ├── DataSourceFactory.java
│ │ │ └── HikariDataSourceFactory.java
│ │ └── validation
│ │ ├── ValidationErrors.java
│ │ ├── ValidationException.java
│ │ ├── Validator.java
│ │ ├── errors
│ │ ├── GeneralError.java
│ │ ├── ObjectError.java
│ │ ├── PropertyError.java
│ │ └── ValidationError.java
│ │ └── rules
│ │ ├── MaxLength.java
│ │ ├── MustBeAlphanumeric.java
│ │ ├── MustBeNumeric.java
│ │ ├── NotEmpty.java
│ │ ├── NotNull.java
│ │ ├── RegexRule.java
│ │ └── Rule.java
│ └── test
│ └── java
│ └── joist
│ └── domain
│ ├── orm
│ ├── DummyDomainObject.java
│ ├── ForeignKeyHolderTest.java
│ ├── ForeignKeyListHolderTest.java
│ ├── IdentityMapTest.java
│ └── queries
│ │ ├── WhereTest.java
│ │ └── columns
│ │ └── MoneyAliasColumnTest.java
│ ├── uow
│ └── UoWTest.java
│ └── validation
│ └── ValidatorTest.java
├── features
├── .checkstyle
├── .settings
│ ├── gradle
│ │ └── org.springsource.ide.eclipse.gradle.core.prefs
│ ├── org.eclipse.core.resources.prefs
│ ├── org.eclipse.core.runtime.prefs
│ ├── org.eclipse.jdt.apt.core.prefs
│ ├── org.eclipse.jdt.core.prefs
│ ├── org.eclipse.jdt.launching.prefs
│ ├── org.eclipse.jdt.ui.prefs
│ └── org.moreunit.prefs
├── FeaturesBackup.launch
├── FeaturesCodegen.launch
├── FeaturesCycle.launch
├── FeaturesPermissionFixer.launch
├── FeaturesTests.launch
├── build.gradle
└── src
│ ├── codegen
│ └── java
│ │ └── features
│ │ └── domain
│ │ ├── Aliases.java
│ │ ├── ChildAlias.java
│ │ ├── ChildCodegen.java
│ │ ├── ChildFAlias.java
│ │ ├── ChildFCodegen.java
│ │ ├── ChildGAlias.java
│ │ ├── ChildGCodegen.java
│ │ ├── ChildHAlias.java
│ │ ├── ChildHCodegen.java
│ │ ├── ChildIAAlias.java
│ │ ├── ChildIACodegen.java
│ │ ├── ChildIBAlias.java
│ │ ├── ChildIBCodegen.java
│ │ ├── CodeAColor.java
│ │ ├── CodeADomainObjectAlias.java
│ │ ├── CodeADomainObjectCodegen.java
│ │ ├── CodeASize.java
│ │ ├── GrandChildAlias.java
│ │ ├── GrandChildCodegen.java
│ │ ├── HistoryEntryAlias.java
│ │ ├── HistoryEntryCodegen.java
│ │ ├── InheritanceABaseAlias.java
│ │ ├── InheritanceABaseCodegen.java
│ │ ├── InheritanceAOwnerAlias.java
│ │ ├── InheritanceAOwnerCodegen.java
│ │ ├── InheritanceASubOneAlias.java
│ │ ├── InheritanceASubOneChildAlias.java
│ │ ├── InheritanceASubOneChildCodegen.java
│ │ ├── InheritanceASubOneCodegen.java
│ │ ├── InheritanceASubTwoAlias.java
│ │ ├── InheritanceASubTwoCodegen.java
│ │ ├── InheritanceAThingAlias.java
│ │ ├── InheritanceAThingCodegen.java
│ │ ├── InheritanceBBottomAlias.java
│ │ ├── InheritanceBBottomCodegen.java
│ │ ├── InheritanceBMiddleAlias.java
│ │ ├── InheritanceBMiddleCodegen.java
│ │ ├── InheritanceBRootAlias.java
│ │ ├── InheritanceBRootChildAlias.java
│ │ ├── InheritanceBRootChildCodegen.java
│ │ ├── InheritanceBRootCodegen.java
│ │ ├── InheritanceCAlias.java
│ │ ├── InheritanceCCodegen.java
│ │ ├── InheritanceCFoo1Alias.java
│ │ ├── InheritanceCFoo1Codegen.java
│ │ ├── InheritanceCFoo2Alias.java
│ │ ├── InheritanceCFoo2Codegen.java
│ │ ├── ManyToManyABarAlias.java
│ │ ├── ManyToManyABarCodegen.java
│ │ ├── ManyToManyAFooAlias.java
│ │ ├── ManyToManyAFooCodegen.java
│ │ ├── ManyToManyAFooToBarAlias.java
│ │ ├── ManyToManyAFooToBarCodegen.java
│ │ ├── ManyToManyBBarAlias.java
│ │ ├── ManyToManyBBarCodegen.java
│ │ ├── ManyToManyBFooAlias.java
│ │ ├── ManyToManyBFooCodegen.java
│ │ ├── ManyToManyBFooToBarAlias.java
│ │ ├── ManyToManyBFooToBarCodegen.java
│ │ ├── OneToOneABarAlias.java
│ │ ├── OneToOneABarCodegen.java
│ │ ├── OneToOneAFooAlias.java
│ │ ├── OneToOneAFooCodegen.java
│ │ ├── OneToOneBBarAlias.java
│ │ ├── OneToOneBBarCodegen.java
│ │ ├── OneToOneBFooAlias.java
│ │ ├── OneToOneBFooCodegen.java
│ │ ├── ParentAlias.java
│ │ ├── ParentBChildBarAlias.java
│ │ ├── ParentBChildBarCodegen.java
│ │ ├── ParentBChildFooAlias.java
│ │ ├── ParentBChildFooCodegen.java
│ │ ├── ParentBChildZazAlias.java
│ │ ├── ParentBChildZazCodegen.java
│ │ ├── ParentBParentAlias.java
│ │ ├── ParentBParentCodegen.java
│ │ ├── ParentCBarAlias.java
│ │ ├── ParentCBarCodegen.java
│ │ ├── ParentCFooAlias.java
│ │ ├── ParentCFooCodegen.java
│ │ ├── ParentCodegen.java
│ │ ├── ParentDAlias.java
│ │ ├── ParentDChildAAlias.java
│ │ ├── ParentDChildACodegen.java
│ │ ├── ParentDChildBAlias.java
│ │ ├── ParentDChildBCodegen.java
│ │ ├── ParentDChildCAlias.java
│ │ ├── ParentDChildCCodegen.java
│ │ ├── ParentDCodegen.java
│ │ ├── ParentDToChildCAlias.java
│ │ ├── ParentDToChildCCodegen.java
│ │ ├── ParentEAlias.java
│ │ ├── ParentECodegen.java
│ │ ├── ParentFAlias.java
│ │ ├── ParentFCodegen.java
│ │ ├── ParentGAlias.java
│ │ ├── ParentGCodegen.java
│ │ ├── ParentHAlias.java
│ │ ├── ParentHCodegen.java
│ │ ├── ParentIAlias.java
│ │ ├── ParentICodegen.java
│ │ ├── PrimitivesAlias.java
│ │ ├── PrimitivesBAlias.java
│ │ ├── PrimitivesBCodegen.java
│ │ ├── PrimitivesCAlias.java
│ │ ├── PrimitivesCCodegen.java
│ │ ├── PrimitivesCodegen.java
│ │ ├── SchemaHash.java
│ │ ├── UserTypesAFooAlias.java
│ │ ├── UserTypesAFooCodegen.java
│ │ ├── ValidationAFooAlias.java
│ │ ├── ValidationAFooCodegen.java
│ │ ├── ValuesAAlias.java
│ │ ├── ValuesACodegen.java
│ │ ├── ValuesBAlias.java
│ │ ├── ValuesBCodegen.java
│ │ ├── builders
│ │ ├── Builders.java
│ │ ├── ChildBuilderCodegen.java
│ │ ├── ChildFBuilderCodegen.java
│ │ ├── ChildGBuilderCodegen.java
│ │ ├── ChildHBuilderCodegen.java
│ │ ├── ChildIABuilderCodegen.java
│ │ ├── ChildIBBuilderCodegen.java
│ │ ├── CodeADomainObjectBuilderCodegen.java
│ │ ├── GrandChildBuilderCodegen.java
│ │ ├── HistoryEntryBuilderCodegen.java
│ │ ├── InheritanceABaseBuilderCodegen.java
│ │ ├── InheritanceAOwnerBuilderCodegen.java
│ │ ├── InheritanceASubOneBuilderCodegen.java
│ │ ├── InheritanceASubOneChildBuilderCodegen.java
│ │ ├── InheritanceASubTwoBuilderCodegen.java
│ │ ├── InheritanceAThingBuilderCodegen.java
│ │ ├── InheritanceBBottomBuilderCodegen.java
│ │ ├── InheritanceBMiddleBuilderCodegen.java
│ │ ├── InheritanceBRootBuilderCodegen.java
│ │ ├── InheritanceBRootChildBuilderCodegen.java
│ │ ├── InheritanceCBuilderCodegen.java
│ │ ├── InheritanceCFoo1BuilderCodegen.java
│ │ ├── InheritanceCFoo2BuilderCodegen.java
│ │ ├── ManyToManyABarBuilderCodegen.java
│ │ ├── ManyToManyAFooBuilderCodegen.java
│ │ ├── ManyToManyAFooToBarBuilderCodegen.java
│ │ ├── ManyToManyBBarBuilderCodegen.java
│ │ ├── ManyToManyBFooBuilderCodegen.java
│ │ ├── ManyToManyBFooToBarBuilderCodegen.java
│ │ ├── OneToOneABarBuilderCodegen.java
│ │ ├── OneToOneAFooBuilderCodegen.java
│ │ ├── OneToOneBBarBuilderCodegen.java
│ │ ├── OneToOneBFooBuilderCodegen.java
│ │ ├── ParentBChildBarBuilderCodegen.java
│ │ ├── ParentBChildFooBuilderCodegen.java
│ │ ├── ParentBChildZazBuilderCodegen.java
│ │ ├── ParentBParentBuilderCodegen.java
│ │ ├── ParentBuilderCodegen.java
│ │ ├── ParentCBarBuilderCodegen.java
│ │ ├── ParentCFooBuilderCodegen.java
│ │ ├── ParentDBuilderCodegen.java
│ │ ├── ParentDChildABuilderCodegen.java
│ │ ├── ParentDChildBBuilderCodegen.java
│ │ ├── ParentDChildCBuilderCodegen.java
│ │ ├── ParentDToChildCBuilderCodegen.java
│ │ ├── ParentEBuilderCodegen.java
│ │ ├── ParentFBuilderCodegen.java
│ │ ├── ParentGBuilderCodegen.java
│ │ ├── ParentHBuilderCodegen.java
│ │ ├── ParentIBuilderCodegen.java
│ │ ├── PrimitivesBBuilderCodegen.java
│ │ ├── PrimitivesBuilderCodegen.java
│ │ ├── PrimitivesCBuilderCodegen.java
│ │ ├── UserTypesAFooBuilderCodegen.java
│ │ ├── ValidationAFooBuilderCodegen.java
│ │ ├── ValuesABuilderCodegen.java
│ │ └── ValuesBBuilderCodegen.java
│ │ └── queries
│ │ ├── ChildFQueriesCodegen.java
│ │ ├── ChildGQueriesCodegen.java
│ │ ├── ChildHQueriesCodegen.java
│ │ ├── ChildIAQueriesCodegen.java
│ │ ├── ChildIBQueriesCodegen.java
│ │ ├── ChildQueriesCodegen.java
│ │ ├── CodeADomainObjectQueriesCodegen.java
│ │ ├── GrandChildQueriesCodegen.java
│ │ ├── HistoryEntryQueriesCodegen.java
│ │ ├── InheritanceABaseQueriesCodegen.java
│ │ ├── InheritanceAOwnerQueriesCodegen.java
│ │ ├── InheritanceASubOneChildQueriesCodegen.java
│ │ ├── InheritanceASubOneQueriesCodegen.java
│ │ ├── InheritanceASubTwoQueriesCodegen.java
│ │ ├── InheritanceAThingQueriesCodegen.java
│ │ ├── InheritanceBBottomQueriesCodegen.java
│ │ ├── InheritanceBMiddleQueriesCodegen.java
│ │ ├── InheritanceBRootChildQueriesCodegen.java
│ │ ├── InheritanceBRootQueriesCodegen.java
│ │ ├── InheritanceCFoo1QueriesCodegen.java
│ │ ├── InheritanceCFoo2QueriesCodegen.java
│ │ ├── InheritanceCQueriesCodegen.java
│ │ ├── ManyToManyABarQueriesCodegen.java
│ │ ├── ManyToManyAFooQueriesCodegen.java
│ │ ├── ManyToManyAFooToBarQueriesCodegen.java
│ │ ├── ManyToManyBBarQueriesCodegen.java
│ │ ├── ManyToManyBFooQueriesCodegen.java
│ │ ├── ManyToManyBFooToBarQueriesCodegen.java
│ │ ├── OneToOneABarQueriesCodegen.java
│ │ ├── OneToOneAFooQueriesCodegen.java
│ │ ├── OneToOneBBarQueriesCodegen.java
│ │ ├── OneToOneBFooQueriesCodegen.java
│ │ ├── ParentBChildBarQueriesCodegen.java
│ │ ├── ParentBChildFooQueriesCodegen.java
│ │ ├── ParentBChildZazQueriesCodegen.java
│ │ ├── ParentBParentQueriesCodegen.java
│ │ ├── ParentCBarQueriesCodegen.java
│ │ ├── ParentCFooQueriesCodegen.java
│ │ ├── ParentDChildAQueriesCodegen.java
│ │ ├── ParentDChildBQueriesCodegen.java
│ │ ├── ParentDChildCQueriesCodegen.java
│ │ ├── ParentDQueriesCodegen.java
│ │ ├── ParentDToChildCQueriesCodegen.java
│ │ ├── ParentEQueriesCodegen.java
│ │ ├── ParentFQueriesCodegen.java
│ │ ├── ParentGQueriesCodegen.java
│ │ ├── ParentHQueriesCodegen.java
│ │ ├── ParentIQueriesCodegen.java
│ │ ├── ParentQueriesCodegen.java
│ │ ├── PrimitivesBQueriesCodegen.java
│ │ ├── PrimitivesCQueriesCodegen.java
│ │ ├── PrimitivesQueriesCodegen.java
│ │ ├── UserTypesAFooQueriesCodegen.java
│ │ ├── ValidationAFooQueriesCodegen.java
│ │ ├── ValuesAQueriesCodegen.java
│ │ └── ValuesBQueriesCodegen.java
│ ├── main
│ ├── java
│ │ └── features
│ │ │ ├── Registry.java
│ │ │ └── domain
│ │ │ ├── Child.java
│ │ │ ├── ChildF.java
│ │ │ ├── ChildG.java
│ │ │ ├── ChildH.java
│ │ │ ├── ChildIA.java
│ │ │ ├── ChildIB.java
│ │ │ ├── CodeADomainObject.java
│ │ │ ├── GrandChild.java
│ │ │ ├── HistoryEntry.java
│ │ │ ├── InheritanceABase.java
│ │ │ ├── InheritanceAOwner.java
│ │ │ ├── InheritanceASubOne.java
│ │ │ ├── InheritanceASubOneChild.java
│ │ │ ├── InheritanceASubTwo.java
│ │ │ ├── InheritanceAThing.java
│ │ │ ├── InheritanceBBottom.java
│ │ │ ├── InheritanceBMiddle.java
│ │ │ ├── InheritanceBRoot.java
│ │ │ ├── InheritanceBRootChild.java
│ │ │ ├── InheritanceC.java
│ │ │ ├── InheritanceCFoo1.java
│ │ │ ├── InheritanceCFoo2.java
│ │ │ ├── ManyToManyABar.java
│ │ │ ├── ManyToManyAFoo.java
│ │ │ ├── ManyToManyAFooToBar.java
│ │ │ ├── ManyToManyBBar.java
│ │ │ ├── ManyToManyBFoo.java
│ │ │ ├── ManyToManyBFooToBar.java
│ │ │ ├── OneToOneABar.java
│ │ │ ├── OneToOneAFoo.java
│ │ │ ├── OneToOneBBar.java
│ │ │ ├── OneToOneBFoo.java
│ │ │ ├── Parent.java
│ │ │ ├── ParentBChildBar.java
│ │ │ ├── ParentBChildFoo.java
│ │ │ ├── ParentBChildZaz.java
│ │ │ ├── ParentBParent.java
│ │ │ ├── ParentCBar.java
│ │ │ ├── ParentCFoo.java
│ │ │ ├── ParentD.java
│ │ │ ├── ParentDChildA.java
│ │ │ ├── ParentDChildB.java
│ │ │ ├── ParentDChildC.java
│ │ │ ├── ParentDToChildC.java
│ │ │ ├── ParentE.java
│ │ │ ├── ParentF.java
│ │ │ ├── ParentG.java
│ │ │ ├── ParentH.java
│ │ │ ├── ParentI.java
│ │ │ ├── Primitives.java
│ │ │ ├── PrimitivesB.java
│ │ │ ├── PrimitivesC.java
│ │ │ ├── UserTypesAFoo.java
│ │ │ ├── ValidationAFoo.java
│ │ │ ├── ValuesA.java
│ │ │ ├── ValuesB.java
│ │ │ ├── builders
│ │ │ ├── ChildBuilder.java
│ │ │ ├── ChildFBuilder.java
│ │ │ ├── ChildGBuilder.java
│ │ │ ├── ChildHBuilder.java
│ │ │ ├── ChildIABuilder.java
│ │ │ ├── ChildIBBuilder.java
│ │ │ ├── CodeADomainObjectBuilder.java
│ │ │ ├── GrandChildBuilder.java
│ │ │ ├── HistoryEntryBuilder.java
│ │ │ ├── InheritanceABaseBuilder.java
│ │ │ ├── InheritanceAOwnerBuilder.java
│ │ │ ├── InheritanceASubOneBuilder.java
│ │ │ ├── InheritanceASubOneChildBuilder.java
│ │ │ ├── InheritanceASubTwoBuilder.java
│ │ │ ├── InheritanceAThingBuilder.java
│ │ │ ├── InheritanceBBottomBuilder.java
│ │ │ ├── InheritanceBMiddleBuilder.java
│ │ │ ├── InheritanceBRootBuilder.java
│ │ │ ├── InheritanceBRootChildBuilder.java
│ │ │ ├── InheritanceCBuilder.java
│ │ │ ├── InheritanceCFoo1Builder.java
│ │ │ ├── InheritanceCFoo2Builder.java
│ │ │ ├── ManyToManyABarBuilder.java
│ │ │ ├── ManyToManyAFooBuilder.java
│ │ │ ├── ManyToManyAFooToBarBuilder.java
│ │ │ ├── ManyToManyBBarBuilder.java
│ │ │ ├── ManyToManyBFooBuilder.java
│ │ │ ├── ManyToManyBFooToBarBuilder.java
│ │ │ ├── OneToOneABarBuilder.java
│ │ │ ├── OneToOneAFooBuilder.java
│ │ │ ├── OneToOneBBarBuilder.java
│ │ │ ├── OneToOneBFooBuilder.java
│ │ │ ├── ParentBChildBarBuilder.java
│ │ │ ├── ParentBChildFooBuilder.java
│ │ │ ├── ParentBChildZazBuilder.java
│ │ │ ├── ParentBParentBuilder.java
│ │ │ ├── ParentBuilder.java
│ │ │ ├── ParentCBarBuilder.java
│ │ │ ├── ParentCFooBuilder.java
│ │ │ ├── ParentDBuilder.java
│ │ │ ├── ParentDChildABuilder.java
│ │ │ ├── ParentDChildBBuilder.java
│ │ │ ├── ParentDChildCBuilder.java
│ │ │ ├── ParentDToChildCBuilder.java
│ │ │ ├── ParentEBuilder.java
│ │ │ ├── ParentFBuilder.java
│ │ │ ├── ParentGBuilder.java
│ │ │ ├── ParentHBuilder.java
│ │ │ ├── ParentIBuilder.java
│ │ │ ├── PrimitivesBBuilder.java
│ │ │ ├── PrimitivesBuilder.java
│ │ │ ├── PrimitivesCBuilder.java
│ │ │ ├── UserTypesAFooBuilder.java
│ │ │ ├── ValidationAFooBuilder.java
│ │ │ ├── ValuesABuilder.java
│ │ │ └── ValuesBBuilder.java
│ │ │ └── queries
│ │ │ ├── ChildFQueries.java
│ │ │ ├── ChildGQueries.java
│ │ │ ├── ChildHQueries.java
│ │ │ ├── ChildIAQueries.java
│ │ │ ├── ChildIBQueries.java
│ │ │ ├── ChildQueries.java
│ │ │ ├── CodeADomainObjectQueries.java
│ │ │ ├── GrandChildQueries.java
│ │ │ ├── HistoryEntryQueries.java
│ │ │ ├── InheritanceABaseQueries.java
│ │ │ ├── InheritanceAOwnerQueries.java
│ │ │ ├── InheritanceASubOneChildQueries.java
│ │ │ ├── InheritanceASubOneQueries.java
│ │ │ ├── InheritanceASubTwoQueries.java
│ │ │ ├── InheritanceAThingQueries.java
│ │ │ ├── InheritanceBBottomQueries.java
│ │ │ ├── InheritanceBMiddleQueries.java
│ │ │ ├── InheritanceBRootChildQueries.java
│ │ │ ├── InheritanceBRootQueries.java
│ │ │ ├── InheritanceCFoo1Queries.java
│ │ │ ├── InheritanceCFoo2Queries.java
│ │ │ ├── InheritanceCQueries.java
│ │ │ ├── ManyToManyABarQueries.java
│ │ │ ├── ManyToManyAFooQueries.java
│ │ │ ├── ManyToManyAFooToBarQueries.java
│ │ │ ├── ManyToManyBBarQueries.java
│ │ │ ├── ManyToManyBFooQueries.java
│ │ │ ├── ManyToManyBFooToBarQueries.java
│ │ │ ├── OneToOneABarQueries.java
│ │ │ ├── OneToOneAFooQueries.java
│ │ │ ├── OneToOneBBarQueries.java
│ │ │ ├── OneToOneBFooQueries.java
│ │ │ ├── ParentBChildBarQueries.java
│ │ │ ├── ParentBChildFooQueries.java
│ │ │ ├── ParentBChildZazQueries.java
│ │ │ ├── ParentBParentQueries.java
│ │ │ ├── ParentCBarQueries.java
│ │ │ ├── ParentCFooQueries.java
│ │ │ ├── ParentDChildAQueries.java
│ │ │ ├── ParentDChildBQueries.java
│ │ │ ├── ParentDChildCQueries.java
│ │ │ ├── ParentDQueries.java
│ │ │ ├── ParentDToChildCQueries.java
│ │ │ ├── ParentEQueries.java
│ │ │ ├── ParentFQueries.java
│ │ │ ├── ParentGQueries.java
│ │ │ ├── ParentHQueries.java
│ │ │ ├── ParentIQueries.java
│ │ │ ├── ParentQueries.java
│ │ │ ├── PrimitivesBQueries.java
│ │ │ ├── PrimitivesCQueries.java
│ │ │ ├── PrimitivesQueries.java
│ │ │ ├── UserTypesAFooQueries.java
│ │ │ ├── ValidationAFooQueries.java
│ │ │ ├── ValuesAQueries.java
│ │ │ └── ValuesBQueries.java
│ └── resources
│ │ └── log4j.properties
│ ├── migrations
│ ├── java
│ │ └── features
│ │ │ ├── cli
│ │ │ ├── Cli.java
│ │ │ └── JoistCli.java
│ │ │ └── migrations
│ │ │ ├── m0000.java
│ │ │ ├── m0001.java
│ │ │ ├── m0002.java
│ │ │ ├── m0003.java
│ │ │ ├── m0004.java
│ │ │ ├── m0005.java
│ │ │ ├── m0006.java
│ │ │ ├── m0007.java
│ │ │ ├── m0008.java
│ │ │ ├── m0009.java
│ │ │ ├── m0010.java
│ │ │ ├── m0011.java
│ │ │ ├── m0012.java
│ │ │ ├── m0013.java
│ │ │ ├── m0014.java
│ │ │ ├── m0015.java
│ │ │ ├── m0016.java
│ │ │ ├── m0017.java
│ │ │ ├── m0018.java
│ │ │ ├── m0019.java
│ │ │ ├── m0020.java
│ │ │ ├── m0021.java
│ │ │ ├── m0022.java
│ │ │ ├── m0023.java
│ │ │ ├── m0024.java
│ │ │ ├── m0025.java
│ │ │ ├── m0026.java
│ │ │ ├── m0027.java
│ │ │ ├── m0028.java
│ │ │ ├── m0029.java
│ │ │ └── m0030.java
│ └── resources
│ │ └── log4j.properties
│ └── test
│ └── java
│ ├── features
│ ├── domain
│ │ ├── AbstractFeaturesTest.java
│ │ ├── AliasRegistryTest.java
│ │ ├── BatchingTest.java
│ │ ├── BetweenTest.java
│ │ ├── BuildersTest.java
│ │ ├── ChangedPropertiesTest.java
│ │ ├── ChildCollectionSkippedTest.java
│ │ ├── ChildEagerLoadingTest.java
│ │ ├── ChildLazyListTest.java
│ │ ├── ChildTest.java
│ │ ├── CodeTests.java
│ │ ├── DateTimeTest.java
│ │ ├── DefaultValuesTest.java
│ │ ├── DeleteTest.java
│ │ ├── DisconnectedTest.java
│ │ ├── DomainObjectTest.java
│ │ ├── DropNotNullTest.java
│ │ ├── HistoryEntryTest.java
│ │ ├── IdentityMapIntegrityTest.java
│ │ ├── InheritanceAQueryTest.java
│ │ ├── InheritanceATest.java
│ │ ├── InheritanceBTest.java
│ │ ├── InheritanceCTest.java
│ │ ├── JdbcTest.java
│ │ ├── ListProxyTest.java
│ │ ├── ManyToManyATest.java
│ │ ├── ManyToManyBTest.java
│ │ ├── OneToOneATest.java
│ │ ├── OpLockATest.java
│ │ ├── OuterJoinFetchingTest.java
│ │ ├── OwnerIsMeTest.java
│ │ ├── OwnerIsThemTest.java
│ │ ├── PagingATest.java
│ │ ├── ParentBTest.java
│ │ ├── ParentCTest.java
│ │ ├── ParentETest.java
│ │ ├── ParentHTest.java
│ │ ├── ParentTest.java
│ │ ├── ParentsLotsTest.java
│ │ ├── PrimitivesAggregatesTest.java
│ │ ├── PrimitivesBAggregatesTest.java
│ │ ├── PrimitivesBTest.java
│ │ ├── PrimitivesCTest.java
│ │ ├── PrimitivesRegexRuleTest.java
│ │ ├── PrimitivesSelectUniqueTest.java
│ │ ├── PrimitivesTest.java
│ │ ├── PrimitivesUpdateTest.java
│ │ ├── ReadTest.java
│ │ ├── RollbackTest.java
│ │ ├── SelectTest.java
│ │ ├── SnapshotTest.java
│ │ ├── UnitTestingSupportTest.java
│ │ ├── UoWTest.java
│ │ ├── UserTypeATest.java
│ │ ├── ValidationATest.java
│ │ ├── WithinTest.java
│ │ └── queries
│ │ │ ├── AggregateTest.java
│ │ │ ├── AliasColumnTest.java
│ │ │ ├── ChildQueryLimitAndOffsetTest.java
│ │ │ ├── ChildQueryTest.java
│ │ │ ├── DomainObjectGroupByTest.java
│ │ │ ├── PrimitivesGroupByTest.java
│ │ │ └── PrimitivesQueryTest.java
│ └── migrations
│ │ └── SchemaCheckTest.java
│ └── log4j-test.properties
├── formatter.xml
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── migrations
├── .settings
│ ├── gradle
│ │ └── org.springsource.ide.eclipse.gradle.core.prefs
│ ├── org.eclipse.core.resources.prefs
│ ├── org.eclipse.core.runtime.prefs
│ ├── org.eclipse.jdt.core.prefs
│ ├── org.eclipse.jdt.ui.prefs
│ └── org.moreunit.prefs
├── build.gradle
└── src
│ └── main
│ ├── java
│ └── joist
│ │ ├── AbstractJoistCli.java
│ │ ├── codegen
│ │ ├── Codegen.java
│ │ ├── Config.java
│ │ ├── InformationSchemaColumn.java
│ │ ├── InformationSchemaWrapper.java
│ │ ├── MarkedList.java
│ │ ├── Schema.java
│ │ ├── dtos
│ │ │ ├── CodeEntity.java
│ │ │ ├── CodeValue.java
│ │ │ ├── Entity.java
│ │ │ ├── ManyToManyProperty.java
│ │ │ ├── ManyToOneProperty.java
│ │ │ ├── OneToManyProperty.java
│ │ │ └── PrimitiveProperty.java
│ │ └── passes
│ │ │ ├── FindCodeValuesPass.java
│ │ │ ├── FindForeignKeysPass.java
│ │ │ ├── FindManyToManyPropertiesPass.java
│ │ │ ├── FindPrimitivePropertiesPass.java
│ │ │ ├── FindTablesPass.java
│ │ │ ├── GenerateAliasesPass.java
│ │ │ ├── GenerateBuilderClassIfNotExistsPass.java
│ │ │ ├── GenerateBuilderCodegenPass.java
│ │ │ ├── GenerateBuildersClassPass.java
│ │ │ ├── GenerateCodesPass.java
│ │ │ ├── GenerateDomainClassIfNotExistsPass.java
│ │ │ ├── GenerateDomainCodegenPass.java
│ │ │ ├── GenerateFlushFunction.java
│ │ │ ├── GenerateQueriesCodegenPass.java
│ │ │ ├── GenerateQueriesIfNotExistsPass.java
│ │ │ ├── GenerateSchemaHash.java
│ │ │ ├── MySqlHistoryTriggersPass.java
│ │ │ ├── OutputPass.java
│ │ │ └── Pass.java
│ │ └── migrations
│ │ ├── AbstractMigration.java
│ │ ├── DatabaseBootstrapper.java
│ │ ├── Migrater.java
│ │ ├── Migration.java
│ │ ├── MigrationKeywords.java
│ │ ├── MigrationLoader.java
│ │ ├── PermissionFixer.java
│ │ ├── SchemaCheck.java
│ │ ├── SchemaVersionTable.java
│ │ ├── columns
│ │ ├── AbstractColumn.java
│ │ ├── BigIntColumn.java
│ │ ├── BooleanColumn.java
│ │ ├── ByteaColumn.java
│ │ ├── CharColumn.java
│ │ ├── Column.java
│ │ ├── ConstraintNamer.java
│ │ ├── DateColumn.java
│ │ ├── DatetimeColumn.java
│ │ ├── ForeignKeyColumn.java
│ │ ├── HackyConstraintNamer.java
│ │ ├── IntColumn.java
│ │ ├── MoneyColumn.java
│ │ ├── PrimaryKeyColumn.java
│ │ ├── SmallIntColumn.java
│ │ ├── TextColumn.java
│ │ └── VarcharColumn.java
│ │ ├── commands
│ │ └── CreateTable.java
│ │ └── fill
│ │ ├── ConstantFillInStrategy.java
│ │ ├── FillInStrategy.java
│ │ └── ResultSetFillInStrategy.java
│ └── test
│ └── joist
│ └── migrations
│ └── columns
│ ├── ForeignKeyColumnTest.java
│ ├── PrimaryKeyColumnTest.java
│ └── StubConstraintNamer.java
├── perf
├── .settings
│ ├── org.apache.ivyde.eclipse.prefs
│ ├── org.eclipse.core.resources.prefs
│ ├── org.eclipse.core.runtime.prefs
│ ├── org.eclipse.jdt.core.prefs
│ └── org.eclipse.jdt.ui.prefs
├── japex.xml
└── src
│ └── main
│ └── java
│ ├── joist
│ └── perf
│ │ ├── HibernateDriver.java
│ │ ├── JoistDriver.java
│ │ ├── hibernate
│ │ ├── Child.java
│ │ ├── GrandChild.java
│ │ ├── HibernatePrefetch.java
│ │ ├── MyConnectionProvider.java
│ │ ├── Parent.java
│ │ └── objects.hbm.xml
│ │ └── joist
│ │ └── JoistPrefetch.java
│ └── log4j.properties
├── settings.gradle
├── starter
├── .gitignore
├── .settings
│ ├── gradle
│ │ └── org.springsource.ide.eclipse.gradle.core.prefs
│ ├── org.eclipse.jdt.core.prefs
│ └── org.eclipse.jdt.ui.prefs
├── build.gradle
├── src
│ ├── main
│ │ ├── java
│ │ │ └── starter
│ │ │ │ └── domain
│ │ │ │ ├── Employee.java
│ │ │ │ ├── HistoryEntry.java
│ │ │ │ ├── builders
│ │ │ │ ├── EmployeeBuilder.java
│ │ │ │ └── HistoryEntryBuilder.java
│ │ │ │ └── queries
│ │ │ │ ├── EmployeeQueries.java
│ │ │ │ └── HistoryEntryQueries.java
│ │ └── resources
│ │ │ └── log4j.properties
│ ├── migrations
│ │ ├── java
│ │ │ └── starter
│ │ │ │ ├── cli
│ │ │ │ ├── Cli.java
│ │ │ │ └── JoistCli.java
│ │ │ │ └── migrations
│ │ │ │ ├── m0000.java
│ │ │ │ └── m0001.java
│ │ └── resources
│ │ │ └── log4j.properties
│ └── test
│ │ └── java
│ │ └── starter
│ │ └── domain
│ │ └── EmployeeTest.java
└── starter-cycle.launch
└── util
├── .settings
├── gradle
│ └── org.springsource.ide.eclipse.gradle.core.prefs
├── org.eclipse.core.resources.prefs
├── org.eclipse.core.runtime.prefs
├── org.eclipse.jdt.core.prefs
├── org.eclipse.jdt.ui.prefs
└── org.moreunit.prefs
├── README.markdown
├── build.gradle
├── joist.util.tests.launch
└── src
├── main
└── java
│ └── joist
│ ├── converter
│ ├── AbstractConverter.java
│ ├── AbstractOneWayConverter.java
│ ├── Converter.java
│ ├── ConverterRegistry.java
│ ├── DefaultConverters.java
│ └── UnsupportedConversionException.java
│ ├── jdbc
│ ├── Jdbc.java
│ ├── JdbcException.java
│ └── RowMapper.java
│ ├── sourcegen
│ ├── Access.java
│ ├── Argument.java
│ ├── GClass.java
│ ├── GDirectory.java
│ ├── GField.java
│ ├── GMethod.java
│ ├── GSettings.java
│ ├── ParsedName.java
│ └── Primitives.java
│ └── util
│ ├── AbstractFixedPrecision.java
│ ├── ConstructorTypeParameter.java
│ ├── Copy.java
│ ├── Default.java
│ ├── Execute.java
│ ├── FluentList.java
│ ├── FluentMap.java
│ ├── Function1.java
│ ├── Inflector.java
│ ├── Interpolate.java
│ ├── Join.java
│ ├── ListDiff.java
│ ├── MapToList.java
│ ├── MapToMap.java
│ ├── Memoizer.java
│ ├── Model.java
│ ├── Read.java
│ ├── Reflection.java
│ ├── StringBuilderr.java
│ ├── SystemProperties.java
│ ├── TestCounter.java
│ ├── TestCounters.java
│ ├── Tick.java
│ ├── ToString.java
│ ├── TopologicalSort.java
│ ├── Wrap.java
│ └── Write.java
└── test
├── java
└── joist
│ ├── converter
│ ├── ConverterInheritanceTest.java
│ ├── ConverterTest.java
│ └── DefaultConvertersTest.java
│ ├── sourcegen
│ ├── ArgumentTest.java
│ ├── GClassStaticInitializerTest.java
│ ├── GClassTest.java
│ ├── GConstructorTest.java
│ ├── GDirectoryTest.java
│ ├── GEnumClassTest.java
│ ├── GFieldTest.java
│ ├── GInnerClassTest.java
│ ├── GInterfaceTest.java
│ ├── GMethodTest.java
│ └── ParsedNameTest.java
│ └── util
│ ├── CopyTest.java
│ ├── ExecuteTest.java
│ ├── FixedPrecisionLimitedTest.java
│ ├── FixedPrecisionTest.java
│ ├── InflectorTest.java
│ ├── InterpolateTest.java
│ ├── ListDiffTest.java
│ ├── StringBuilderrTest.java
│ ├── SystemPropertiesTest.java
│ ├── TestCounterTest.java
│ ├── TickTest.java
│ ├── ToStringTest.java
│ ├── TopologicalSortTest.java
│ ├── WrapTest.java
│ └── WriteTest.java
└── resources
└── joist
└── util
└── WriteTest.txt
/.checkstyle:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /.gradle
2 | *.log*
3 | build*.properties
4 | build/
5 | newproject
6 | docs.zip
7 | .classpath
8 | .project
9 | /*/bin/
10 | org.eclipse.buildship.core.prefs
11 | /*/out/
12 | /.idea/
13 |
--------------------------------------------------------------------------------
/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs:
--------------------------------------------------------------------------------
1 | #org.springsource.ide.eclipse.gradle.core.preferences.GradleProjectPreferences
2 | #Sat May 30 15:03:09 CDT 2015
3 | build.family.org.gradle.tooling.model.eclipse.HierarchicalEclipseProject=;domain;domain-testing;features;migrations;starter;util;
4 | org.springsource.ide.eclipse.gradle.rootprojectloc=
5 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: java
2 | sudo: false
3 | env:
4 | global:
5 | - secure: geb4AbjI6MxYGQ0/JIQ3gmfTbgwAunS4sIPHYg/Ap0JdATJ2ZOtPgOLwCxE2DzwMRLqAOsVCoOdEaDjBqx5PW2ull3N/v75Nq39fVAFa+JMqU1H4IoF68TKOwEJ98VryfqAHSnp6/5KFOE8DjXNQ/AqTqyFLJ1FSkHrdmE7ulck=
6 | - secure: bjxJnjs5uXxAi5wGwI5eWflEBMEo3RSKVj0rnElRWYQFjERl2Wz0E3aGfc/XE7SI1jmjWj4BvkjuIVhA6rybiEZa9P9ioGfuAYBUxFD+B1knxq+NLWEjU9GbhwSL/VkteH3ShaRBw/lHTyPN58rhy+a/9iF8W0VLLU5b/x+UhXo=
7 | before_install:
8 | - echo "db.sa.username = root" > features/build.properties
9 | - echo "db.sa.password = " >> features/build.properties
10 | - echo "db.sa.username = root" > starter/build.properties
11 | - echo "db.sa.password = " >> starter/build.properties
12 | - cat features/build.properties
13 | after_success:
14 | - test -n "$TRAVIS_TAG" && ssh-keyscan -H repo.joist.ws >> ~/.ssh/known_hosts && ./gradlew uploadArchives
15 | jdk:
16 | - openjdk8
17 | services:
18 | - mysql
19 |
--------------------------------------------------------------------------------
/LICENSE.markdown:
--------------------------------------------------------------------------------
1 |
2 | Copyright 2009 Stephen Haberman
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 |
16 |
--------------------------------------------------------------------------------
/bootstrap/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | #Wed Apr 12 11:46:23 CDT 2006
2 | eclipse.preferences.version=1
3 | encoding/=UTF-8
4 |
--------------------------------------------------------------------------------
/bootstrap/.settings/org.eclipse.core.runtime.prefs:
--------------------------------------------------------------------------------
1 | #Fri Oct 26 22:07:05 CDT 2007
2 | eclipse.preferences.version=1
3 | instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
4 | line.separator=\r\n
5 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/.factorypath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/.gitignore:
--------------------------------------------------------------------------------
1 | bin
2 | *.log*
3 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/.settings/org.eclipse.jdt.apt.core.prefs:
--------------------------------------------------------------------------------
1 | #Fri Feb 06 16:27:06 CST 2009
2 | eclipse.preferences.version=1
3 | org.eclipse.jdt.apt.aptEnabled=true
4 | org.eclipse.jdt.apt.genSrcDir=bin/apt
5 | org.eclipse.jdt.apt.reconcileEnabled=true
6 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/ProjectNameCycle.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/ProjectNameJetty.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/content/WEB-INF/web.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | @projectName@
4 |
5 |
6 | JoistWeb
7 | @projectName@.webapp.@ProjectName@Servlet
8 | 0
9 |
10 |
11 |
12 | JoistWeb
13 | *.htm
14 |
15 |
16 |
17 | index.htm
18 |
19 |
20 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/content/index.htm:
--------------------------------------------------------------------------------
1 | This is a dummy page for the Jetty welcome-file entry to find.
2 |
3 | Joist will take over the *.htm files in the classpath before this is served.
4 |
5 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/src/main/LogConfiguration.java:
--------------------------------------------------------------------------------
1 | import joist.util.Log;
2 | import joist.util.LogAppenderFactory;
3 |
4 | import org.apache.log4j.Level;
5 | import org.apache.log4j.LogManager;
6 |
7 | public class LogConfiguration {
8 |
9 | public static void setup() {
10 | LogManager.resetConfiguration();
11 | LogManager.getRootLogger().setLevel(Level.INFO);
12 | LogManager.getRootLogger().addAppender(LogAppenderFactory.newConsoleAppender());
13 | LogManager.getLogger("@projectName@").setLevel(Level.DEBUG);
14 | LogManager.getLogger("joist").setLevel(Level.DEBUG);
15 | // LogManager.getLogger("joist.jdbc").setLevel(Level.TRACE);
16 | Log.debug("Configuration reset, ConsoleAppender added");
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/src/main/projectName/Environment.java:
--------------------------------------------------------------------------------
1 | package @projectName@;
2 |
3 | public enum Environment {
4 |
5 | DEV(), //
6 | PROD();
7 |
8 | private Environment() {
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/src/main/projectName/cli/Cli.java:
--------------------------------------------------------------------------------
1 | package @projectName@.cli;
2 |
3 | import joist.util.Reflection;
4 | import joist.util.SystemProperties;
5 | import @projectName@.Registry;
6 |
7 | import org.apache.commons.lang.StringUtils;
8 |
9 | public class Cli {
10 |
11 | public static void main(String[] args) {
12 | SystemProperties.loadFromFileIfExists("./build.properties");
13 | Registry.start();
14 | try {
15 | for (String arg : args) {
16 | String[] parts = StringUtils.split(arg, ".", 2);
17 | Object task = Reflection.newInstance("@projectName@.cli." + parts[0]);
18 | Reflection.invoke(parts[1], task);
19 | }
20 | } finally {
21 | Registry.stop();
22 | }
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/src/main/projectName/cli/JoistCli.java:
--------------------------------------------------------------------------------
1 | package @projectName@.cli;
2 |
3 | import joist.domain.codegen.AbstractJoistCli;
4 |
5 | public class JoistCli extends AbstractJoistCli {
6 |
7 | public JoistCli() {
8 | super("@projectName@");
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/src/main/projectName/migrations/m0000.java:
--------------------------------------------------------------------------------
1 | package @projectName@.migrations;
2 |
3 | import static joist.domain.migrations.MigrationKeywords.*;
4 | import joist.domain.migrations.AbstractMigration;
5 |
6 | public class m0000 extends AbstractMigration {
7 |
8 | public m0000() {
9 | super("Create schema_version.");
10 | }
11 |
12 | public void apply() {
13 | createTable("schema_version", integer("update_lock"), integer("version"));
14 | execute("INSERT INTO schema_version (update_lock, version) values (1, -1)");
15 | createTable("code_id", varchar("table_name").unique(), integer("next_id"));
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/src/main/projectName/migrations/m0001.java:
--------------------------------------------------------------------------------
1 | package @projectName@.migrations;
2 |
3 | import static joist.domain.migrations.MigrationKeywords.*;
4 | import joist.domain.migrations.AbstractMigration;
5 |
6 | public class m0001 extends AbstractMigration {
7 |
8 | public m0001() {
9 | super("Create user.");
10 | }
11 |
12 | public void apply() {
13 | createTable("user",//
14 | primaryKey("id"),
15 | varchar("username").unique(),
16 | integer("version"));
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/src/main/projectName/webapp/pages/AbstractProjectNamePage.java:
--------------------------------------------------------------------------------
1 | package @projectName@.webapp.pages;
2 |
3 | import joist.domain.uow.UoW;
4 | import joist.domain.validation.ValidationException;
5 | import joist.web.AbstractPage;
6 | import joist.web.controls.MessagesDiv;
7 |
8 | public abstract class Abstract@ProjectName@Page extends AbstractPage {
9 |
10 | protected MessagesDiv messages = new MessagesDiv();
11 |
12 | public boolean commit() {
13 | try {
14 | UoW.commit();
15 | return true;
16 | } catch (ValidationException ve) {
17 | for (String message : ve.getValidationErrorMessages()) {
18 | this.messages.addError(message);
19 | }
20 | return false;
21 | }
22 | }
23 |
24 | public MessagesDiv getMessages() {
25 | return this.messages;
26 | }
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/src/main/projectName/webapp/pages/IndexPage.java:
--------------------------------------------------------------------------------
1 | package @projectName@.webapp.pages;
2 |
3 | import org.exigencecorp.bindgen.Bindable;
4 |
5 | @Bindable
6 | public class IndexPage extends Abstract@ProjectName@Page {
7 |
8 | }
9 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/src/main/projectName/webapp/pages/index.htm:
--------------------------------------------------------------------------------
1 |
2 | index
3 |
4 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/tests/integration/projectName/AbstractProjectNameIntegrationTest.java:
--------------------------------------------------------------------------------
1 | package @projectName@;
2 |
3 | import joist.domain.AbstractDomainObjectsTest;
4 | import joist.domain.util.Freeze;
5 | import joist.jdbc.Jdbc;
6 |
7 | public abstract class Abstract@ProjectName@IntegrationTest extends AbstractDomainObjectsTest {
8 |
9 | private static boolean started = false;
10 |
11 | public void setUp() throws Exception {
12 | if (!started) {
13 | Registry.start();
14 | started = true;
15 | }
16 | super.setUp();
17 | Freeze.at(2008, 1, 1);
18 | Jdbc.queryForInt(Registry.getDataSource(), "SELECT flush_test_database()");
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/tests/integration/projectName/domain/UserIntegrationTest.java:
--------------------------------------------------------------------------------
1 | package @projectName@.domain;
2 |
3 | import @projectName@.Abstract@ProjectName@IntegrationTest;
4 | import @projectName@.domain.builders.UserBuilder;
5 |
6 | public class UserIntegrationTest extends Abstract@ProjectName@IntegrationTest {
7 |
8 | public void testCommit() {
9 | UserBuilder.create();
10 | this.commitAndReOpen();
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/tests/unit/projectName/AbstractProjectNameUnitTest.java:
--------------------------------------------------------------------------------
1 | package @projectName@;
2 |
3 | import joist.domain.util.Freeze;
4 | import junit.framework.TestCase;
5 |
6 | public abstract class Abstract@ProjectName@UnitTest extends TestCase {
7 |
8 | public void setUp() throws Exception {
9 | super.setUp();
10 | Freeze.at(2008, 1, 1);
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/tests/unit/projectName/domain/UserTest.java:
--------------------------------------------------------------------------------
1 | package @projectName@.domain;
2 |
3 | import @projectName@.Abstract@ProjectName@UnitTest;
4 |
5 | public class UserTest extends Abstract@ProjectName@UnitTest {
6 |
7 | public void testValid() {
8 | User user = new User();
9 | user.validate();
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/tests/unit/projectName/domain/builders/UserBuilder.java:
--------------------------------------------------------------------------------
1 | package @projectName@.domain.builders;
2 |
3 | import joist.domain.util.AbstractBuilder;
4 | import joist.util.TestCounter;
5 | import @projectName@.domain.User;
6 |
7 | public class UserBuilder extends AbstractBuilder {
8 |
9 | private static TestCounter counter = new TestCounter();
10 |
11 | public static UserBuilder create() {
12 | int i = counter.next();
13 | User user = new User();
14 | user.setUsername("user" + i);
15 | return new UserBuilder(user);
16 | }
17 |
18 | protected UserBuilder(User user) {
19 | super(user);
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/tests/web/projectName/webapp/pageObjects/IndexPageObject.java:
--------------------------------------------------------------------------------
1 | package @projectName@.webapp.pageObjects;
2 |
3 | import org.openqa.selenium.WebDriver;
4 |
5 | public class IndexPageObject extends Abstract@ProjectName@PageObject {
6 |
7 | public IndexPageObject(WebDriver driver) {
8 | super(driver);
9 | }
10 |
11 | public void open() {
12 | this.open("/index.htm");
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/bootstrap/src/templates/tests/web/projectName/webapp/pages/IndexPageTest.java:
--------------------------------------------------------------------------------
1 | package @projectName@.webapp.pages;
2 |
3 | import @projectName@.Abstract@ProjectName@WebTest;
4 | import @projectName@.webapp.pageObjects.IndexPageObject;
5 |
6 | public class IndexPageTest extends Abstract@ProjectName@WebTest {
7 |
8 | private IndexPageObject index;
9 |
10 | public void setUp() throws Exception {
11 | super.setUp();
12 | this.commitAndReOpen();
13 | }
14 |
15 | public void testStart() {
16 | this.index = this.startAtIndexPage();
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/docs/.gitignore:
--------------------------------------------------------------------------------
1 | _site
2 | screencasts
3 |
--------------------------------------------------------------------------------
/docs/CNAME:
--------------------------------------------------------------------------------
1 | joist.ws
--------------------------------------------------------------------------------
/docs/build.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/docs/js/clipboard.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stephenh/joist-java/41dda3478a6a163d914a49191fbe4cb6d28c54e4/docs/js/clipboard.swf
--------------------------------------------------------------------------------
/domain-testing/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs:
--------------------------------------------------------------------------------
1 | #org.springsource.ide.eclipse.gradle.core.preferences.GradleProjectPreferences
2 | #Tue Oct 28 21:18:59 CDT 2014
3 | org.springsource.ide.eclipse.gradle.linkedresources=
4 | org.springsource.ide.eclipse.gradle.rootprojectloc=..
5 |
--------------------------------------------------------------------------------
/domain-testing/.settings/org.eclipse.core.runtime.prefs:
--------------------------------------------------------------------------------
1 | #Sun Jan 09 16:04:48 CST 2011
2 | eclipse.preferences.version=1
3 | line.separator=\n
4 |
--------------------------------------------------------------------------------
/domain-testing/.settings/org.eclipse.jdt.ui.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | formatter_profile=_Joist Coding Standards
3 | formatter_settings_version=12
4 |
--------------------------------------------------------------------------------
/domain-testing/build.gradle:
--------------------------------------------------------------------------------
1 |
2 | dependencies {
3 | compile project(':domain')
4 | compile project(':util')
5 | compile 'junit:junit:4.12'
6 | }
7 |
8 |
--------------------------------------------------------------------------------
/domain/.checkstyle:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/domain/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs:
--------------------------------------------------------------------------------
1 | #org.springsource.ide.eclipse.gradle.core.preferences.GradleProjectPreferences
2 | #Tue Oct 28 21:18:13 CDT 2014
3 | org.springsource.ide.eclipse.gradle.linkedresources=
4 | org.springsource.ide.eclipse.gradle.rootprojectloc=..
5 |
--------------------------------------------------------------------------------
/domain/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | #Wed Apr 12 11:46:23 CDT 2006
2 | eclipse.preferences.version=1
3 | encoding/=UTF-8
4 |
--------------------------------------------------------------------------------
/domain/.settings/org.eclipse.core.runtime.prefs:
--------------------------------------------------------------------------------
1 | #Sun Jan 09 16:04:44 CST 2011
2 | eclipse.preferences.version=1
3 | instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
4 | line.separator=\n
5 |
--------------------------------------------------------------------------------
/domain/.settings/org.moreunit.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.moreunit.preferences.version=2
3 | org.moreunit.test_type=junit4
4 | org.moreunit.unitsourcefolder=joist-domain\:src/main/java\:joist-domain\:src/test/java
5 | org.moreunit.useprojectsettings=true
6 |
--------------------------------------------------------------------------------
/domain/build.gradle:
--------------------------------------------------------------------------------
1 |
2 | dependencies {
3 | compile project(':util')
4 | compile 'commons-lang:commons-lang:2.6'
5 | compile 'com.github.stephenh:timeandmoney:1.0.0'
6 | compile 'com.mchange:c3p0:0.9.5.2'
7 | compile 'com.zaxxer:HikariCP:3.1.0'
8 |
9 | testCompile 'junit:junit:4.12'
10 | testCompile 'org.mockito:mockito-all:2.0.2-beta'
11 | }
12 |
13 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/Changed.java:
--------------------------------------------------------------------------------
1 | package joist.domain;
2 |
3 | import java.util.Map;
4 |
5 | public interface Changed {
6 |
7 | void clear();
8 |
9 | int size();
10 |
11 | boolean contains(String propertyName);
12 |
13 | Object getOriginal(String propertyName);
14 |
15 | void record(String primitveProperty, Object oldValue, Object newValue);
16 |
17 | void record(String collectionProperty);
18 |
19 | Map getMap();
20 | }
21 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/Code.java:
--------------------------------------------------------------------------------
1 | package joist.domain;
2 |
3 | public interface Code {
4 |
5 | Long getId();
6 |
7 | String getCode();
8 |
9 | String getName();
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/Shim.java:
--------------------------------------------------------------------------------
1 | package joist.domain;
2 |
3 | public interface Shim {
4 |
5 | void set(T instance, U value);
6 |
7 | U get(T instance);
8 |
9 | String getName();
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/exceptions/DisconnectedException.java:
--------------------------------------------------------------------------------
1 | package joist.domain.exceptions;
2 |
3 | public class DisconnectedException extends DomainObjectsException {
4 |
5 | private static final long serialVersionUID = 1L;
6 |
7 | public DisconnectedException() {
8 | super("The UoW is currently closed");
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/exceptions/DomainObjectsException.java:
--------------------------------------------------------------------------------
1 | package joist.domain.exceptions;
2 |
3 | @SuppressWarnings("serial")
4 | public class DomainObjectsException extends RuntimeException {
5 |
6 | protected DomainObjectsException(String message) {
7 | super(message);
8 | }
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/exceptions/NotFoundException.java:
--------------------------------------------------------------------------------
1 | package joist.domain.exceptions;
2 |
3 | import java.util.Collection;
4 |
5 | /** Exception denoting a domain object was not found. */
6 | public class NotFoundException extends DomainObjectsException {
7 |
8 | private static final long serialVersionUID = 1L;
9 |
10 | public NotFoundException(Class> type) {
11 | super("Instance of " + type.getSimpleName() + " not found");
12 | }
13 |
14 | public NotFoundException(Class> type, long id) {
15 | super(type.getSimpleName() + "#" + id + " not found");
16 | }
17 |
18 | public NotFoundException(Class> type, Collection ids) {
19 | super(type.getSimpleName() + " id in (" + String.join(", ", (String[]) ids.stream().map(id -> String.valueOf(id)).toArray()) + ") not found");
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/exceptions/OpLockException.java:
--------------------------------------------------------------------------------
1 | package joist.domain.exceptions;
2 |
3 | import joist.domain.DomainObject;
4 |
5 | public class OpLockException extends DomainObjectsException {
6 |
7 | private static final long serialVersionUID = 1L;
8 |
9 | public OpLockException(DomainObject instance) {
10 | super("Op lock failed for " + instance);
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/exceptions/TooManyException.java:
--------------------------------------------------------------------------------
1 | package joist.domain.exceptions;
2 |
3 | import java.util.List;
4 |
5 | /** Exception noting too many domain objects were found when only 1 was expected. */
6 | public class TooManyException extends DomainObjectsException {
7 |
8 | private static final long serialVersionUID = 1L;
9 |
10 | public TooManyException(Class type, List instances) {
11 | super("Too many " + type.getSimpleName() + " found: " + instances);
12 | }
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/orm/Db.java:
--------------------------------------------------------------------------------
1 | package joist.domain.orm;
2 |
3 | public enum Db {
4 |
5 | MYSQL, PG;
6 |
7 | public boolean isPg() {
8 | return this == PG;
9 | }
10 |
11 | public boolean isMySQL() {
12 | return this == MYSQL;
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/orm/EagerLoading.java:
--------------------------------------------------------------------------------
1 | package joist.domain.orm;
2 |
3 | import java.util.concurrent.atomic.AtomicBoolean;
4 |
5 | /** Class to flag eager loading. */
6 | public class EagerLoading {
7 |
8 | private static AtomicBoolean enabled = new AtomicBoolean(true);
9 |
10 | public static boolean isEnabled() {
11 | return enabled.get();
12 | }
13 |
14 | public static void setEnabled(boolean enabled) {
15 | EagerLoading.enabled.set(enabled);
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/orm/NamedUpdater.java:
--------------------------------------------------------------------------------
1 | package joist.domain.orm;
2 |
3 | public class NamedUpdater implements Updater {
4 | private final String name;
5 |
6 | public NamedUpdater(final String name) {
7 | this.name = name;
8 | }
9 |
10 | public String getUpdaterId() {
11 | return this.name;
12 | }
13 |
14 | @Override
15 | public String toString() {
16 | return this.name;
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/orm/UnitTesting.java:
--------------------------------------------------------------------------------
1 | package joist.domain.orm;
2 |
3 | import java.util.concurrent.atomic.AtomicBoolean;
4 |
5 | /** Class to flag unit testing on to more easily work with models sans the db. */
6 | public class UnitTesting {
7 |
8 | private static AtomicBoolean enabled = new AtomicBoolean(false);
9 |
10 | public static boolean isEnabled() {
11 | return enabled.get();
12 | }
13 |
14 | public static void setEnabled(boolean enabled) {
15 | UnitTesting.enabled.set(enabled);
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/orm/Updater.java:
--------------------------------------------------------------------------------
1 | package joist.domain.orm;
2 |
3 | public interface Updater {
4 | String getUpdaterId();
5 | }
6 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/orm/mappers/IdsMapper.java:
--------------------------------------------------------------------------------
1 | package joist.domain.orm.mappers;
2 |
3 | import java.sql.ResultSet;
4 | import java.sql.SQLException;
5 | import java.util.List;
6 |
7 | import joist.domain.DomainObject;
8 | import joist.domain.orm.queries.Alias;
9 | import joist.jdbc.RowMapper;
10 |
11 | public class IdsMapper implements RowMapper {
12 |
13 | private final Alias from;
14 | private final List ids;
15 |
16 | public IdsMapper(Alias from, List ids) {
17 | this.from = from;
18 | this.ids = ids;
19 | }
20 |
21 | public void mapRow(ResultSet rs) throws SQLException {
22 | this.ids.add(new Long(rs.getLong(this.from.getIdColumn().getName())));
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/orm/mappers/ValuesMapper.java:
--------------------------------------------------------------------------------
1 | package joist.domain.orm.mappers;
2 |
3 | import java.sql.ResultSet;
4 | import java.sql.SQLException;
5 | import java.util.List;
6 |
7 | import joist.domain.orm.queries.SelectItem;
8 | import joist.domain.orm.queries.columns.ColumnExpression;
9 | import joist.jdbc.RowMapper;
10 |
11 | public class ValuesMapper implements RowMapper {
12 |
13 | private final List results;
14 | private final ColumnExpression column;
15 |
16 | public ValuesMapper(SelectItem item, List results) {
17 | this.results = results;
18 | this.column = (ColumnExpression) item.getColumn();
19 | }
20 |
21 | public void mapRow(ResultSet rs) throws SQLException {
22 | Object value = rs.getObject(1);
23 | R domainValue = (value == null) ? null : this.column.toDomainValue(value);
24 | this.results.add(domainValue);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/orm/queries/Order.java:
--------------------------------------------------------------------------------
1 | package joist.domain.orm.queries;
2 |
3 | public class Order {
4 |
5 | private final String text;
6 |
7 | public Order(String text) {
8 | this.text = text;
9 | }
10 |
11 | public String toString() {
12 | return this.text;
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/orm/queries/SetItem.java:
--------------------------------------------------------------------------------
1 | package joist.domain.orm.queries;
2 |
3 | import joist.domain.DomainObject;
4 | import joist.domain.orm.queries.columns.AliasColumn;
5 |
6 | public class SetItem {
7 |
8 | private final AliasColumn column;
9 | private final Object value;
10 |
11 | public SetItem(AliasColumn column, Object value) {
12 | this.column = column;
13 | this.value = value;
14 | }
15 |
16 | public AliasColumn getColumn() {
17 | return this.column;
18 | }
19 |
20 | public Object getValue() {
21 | return this.value;
22 | }
23 |
24 | public String toString() {
25 | return this.column.getQualifiedName();
26 | }
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/orm/queries/columns/ByteArrayAliasColumn.java:
--------------------------------------------------------------------------------
1 | package joist.domain.orm.queries.columns;
2 |
3 | import java.sql.ResultSet;
4 | import java.sql.SQLException;
5 |
6 | import joist.domain.DomainObject;
7 | import joist.domain.Shim;
8 | import joist.domain.orm.queries.Alias;
9 |
10 | public class ByteArrayAliasColumn extends AliasColumn {
11 |
12 | public ByteArrayAliasColumn(Alias alias, String name, Shim shim) {
13 | super(alias, name, shim);
14 | }
15 |
16 | @Override
17 | public byte[] toJdbcValue(ResultSet rs, int i) throws SQLException {
18 | return rs.getBytes(i);
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/orm/queries/columns/DateAliasColumn.java:
--------------------------------------------------------------------------------
1 | package joist.domain.orm.queries.columns;
2 |
3 | import java.sql.Date;
4 | import java.sql.ResultSet;
5 | import java.sql.SQLException;
6 |
7 | import joist.domain.DomainObject;
8 | import joist.domain.Shim;
9 | import joist.domain.orm.queries.Alias;
10 |
11 | public class DateAliasColumn extends AliasColumn {
12 |
13 | public DateAliasColumn(Alias alias, String name, Shim shim) {
14 | super(alias, name, shim);
15 | }
16 |
17 | @Override
18 | public Date toJdbcValue(ResultSet rs, int i) throws SQLException {
19 | return rs.getDate(i);
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/uow/Block.java:
--------------------------------------------------------------------------------
1 | package joist.domain.uow;
2 |
3 | public interface Block {
4 |
5 | void go();
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/uow/BlockWithReturn.java:
--------------------------------------------------------------------------------
1 | package joist.domain.uow;
2 |
3 | public interface BlockWithReturn {
4 |
5 | T go();
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/uow/BlockWithReturnAndSafety.java:
--------------------------------------------------------------------------------
1 | package joist.domain.uow;
2 |
3 | public interface BlockWithReturnAndSafety {
4 |
5 | T go();
6 |
7 | T stopped(Exception e);
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/uow/BlockWithSafety.java:
--------------------------------------------------------------------------------
1 | package joist.domain.uow;
2 |
3 | public interface BlockWithSafety {
4 |
5 | void go() throws Exception;
6 |
7 | void stopped(Exception e);
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/util/converters/CodeToStringConverter.java:
--------------------------------------------------------------------------------
1 | package joist.domain.util.converters;
2 |
3 | import joist.converter.AbstractConverter;
4 | import joist.domain.Code;
5 |
6 | public class CodeToStringConverter extends AbstractConverter {
7 |
8 | public String convertOneToTwo(Code value, Class extends String> toType) {
9 | return value.toString();
10 | }
11 |
12 | @SuppressWarnings("rawtypes")
13 | public Code convertTwoToOne(String value, Class extends Code> toType) {
14 | // javac needs the double cast--ugh
15 | return (Code) Enum.valueOf((Class) (Class>) toType, value);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/util/converters/CodeToTextStringConverter.java:
--------------------------------------------------------------------------------
1 | package joist.domain.util.converters;
2 |
3 | import joist.converter.AbstractOneWayConverter;
4 | import joist.domain.Code;
5 |
6 | public class CodeToTextStringConverter extends AbstractOneWayConverter {
7 |
8 | public String convertOneToTwo(Code value, Class extends String> toType) {
9 | return value.getName();
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/util/converters/DomainObjectToStringConverter.java:
--------------------------------------------------------------------------------
1 | package joist.domain.util.converters;
2 |
3 | import joist.converter.AbstractConverter;
4 | import joist.domain.DomainObject;
5 | import joist.domain.uow.UoW;
6 |
7 | public class DomainObjectToStringConverter extends AbstractConverter {
8 |
9 | public String convertOneToTwo(DomainObject value, Class extends String> toType) {
10 | return value.getId() == null ? "" : value.getId().toString();
11 | }
12 |
13 | public DomainObject convertTwoToOne(String value, Class extends DomainObject> toType) {
14 | if ("".equals(value)) {
15 | return null;
16 | }
17 | return UoW.load(toType, new Long(value));
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/util/converters/DomainObjectToTextStringConverter.java:
--------------------------------------------------------------------------------
1 | package joist.domain.util.converters;
2 |
3 | import joist.converter.AbstractOneWayConverter;
4 | import joist.domain.DomainObject;
5 |
6 | public class DomainObjectToTextStringConverter extends AbstractOneWayConverter {
7 |
8 | public String convertOneToTwo(DomainObject value, Class extends String> toType) {
9 | return value.toTextString();
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/util/pools/DataSourceFactory.java:
--------------------------------------------------------------------------------
1 | package joist.domain.util.pools;
2 |
3 | import javax.sql.DataSource;
4 |
5 | import joist.domain.util.ConnectionSettings;
6 |
7 | public interface DataSourceFactory {
8 |
9 | DataSource create(ConnectionSettings settings);
10 |
11 | void destroy(DataSource dataSource);
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/validation/errors/GeneralError.java:
--------------------------------------------------------------------------------
1 | package joist.domain.validation.errors;
2 |
3 | public class GeneralError implements ValidationError {
4 |
5 | private final String message;
6 |
7 | public GeneralError(String message) {
8 | this.message = message;
9 | }
10 |
11 | public String getMessage() {
12 | return this.message;
13 | }
14 |
15 | public String toString() {
16 | return this.getMessage();
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/validation/errors/ObjectError.java:
--------------------------------------------------------------------------------
1 | package joist.domain.validation.errors;
2 |
3 | import joist.domain.DomainObject;
4 |
5 | /** An error that applies to the whole object. */
6 | public class ObjectError implements ValidationError {
7 |
8 | private final DomainObject instance;
9 | private final String message;
10 |
11 | public ObjectError(DomainObject instance, String message) {
12 | this.instance = instance;
13 | this.message = message;
14 | }
15 |
16 | public DomainObject getInstance() {
17 | return this.instance;
18 | }
19 |
20 | public String getMessage() {
21 | return this.message;
22 | }
23 |
24 | public String toString() {
25 | return this.message + " - " + this.instance;
26 | }
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/validation/errors/ValidationError.java:
--------------------------------------------------------------------------------
1 | package joist.domain.validation.errors;
2 |
3 | public interface ValidationError {
4 |
5 | String getMessage();
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/validation/rules/NotEmpty.java:
--------------------------------------------------------------------------------
1 | package joist.domain.validation.rules;
2 |
3 | import joist.domain.DomainObject;
4 | import joist.domain.Shim;
5 | import joist.domain.validation.ValidationErrors;
6 |
7 | public class NotEmpty implements Rule {
8 |
9 | private final Shim shim;
10 |
11 | public NotEmpty(Shim shim) {
12 | this.shim = shim;
13 | }
14 |
15 | public void validate(ValidationErrors errors, T t) {
16 | String value = this.shim.get(t);
17 | if (value != null && value.trim().length() == 0) {
18 | errors.addPropertyError(t, this.shim.getName(), "cannot be empty");
19 | }
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/validation/rules/NotNull.java:
--------------------------------------------------------------------------------
1 | package joist.domain.validation.rules;
2 |
3 | import joist.domain.DomainObject;
4 | import joist.domain.Shim;
5 | import joist.domain.validation.ValidationErrors;
6 |
7 | public class NotNull implements Rule {
8 |
9 | private final Shim shim;
10 |
11 | public NotNull(Shim shim) {
12 | this.shim = shim;
13 | }
14 |
15 | public void validate(ValidationErrors errors, T t) {
16 | Object value = this.shim.get(t);
17 | if (value == null) {
18 | errors.addPropertyError(t, this.shim.getName(), "is required");
19 | }
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/domain/src/main/java/joist/domain/validation/rules/Rule.java:
--------------------------------------------------------------------------------
1 | package joist.domain.validation.rules;
2 |
3 | import joist.domain.validation.ValidationErrors;
4 |
5 | public interface Rule {
6 |
7 | void validate(ValidationErrors errors, T object);
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/features/.checkstyle:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/features/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs:
--------------------------------------------------------------------------------
1 | #org.springsource.ide.eclipse.gradle.core.preferences.GradleProjectPreferences
2 | #Tue Oct 28 21:19:04 CDT 2014
3 | org.springsource.ide.eclipse.gradle.linkedresources=
4 | org.springsource.ide.eclipse.gradle.rootprojectloc=..
5 |
--------------------------------------------------------------------------------
/features/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | #Wed Apr 12 11:46:23 CDT 2006
2 | eclipse.preferences.version=1
3 | encoding/=UTF-8
4 |
--------------------------------------------------------------------------------
/features/.settings/org.eclipse.core.runtime.prefs:
--------------------------------------------------------------------------------
1 | #Sun Jan 09 16:04:51 CST 2011
2 | eclipse.preferences.version=1
3 | instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
4 | line.separator=\n
5 |
--------------------------------------------------------------------------------
/features/.settings/org.eclipse.jdt.apt.core.prefs:
--------------------------------------------------------------------------------
1 | #Tue Oct 06 22:38:12 CDT 2009
2 | eclipse.preferences.version=1
3 | org.eclipse.jdt.apt.aptEnabled=false
4 | org.eclipse.jdt.apt.genSrcDir=bin/apt
5 | org.eclipse.jdt.apt.reconcileEnabled=false
6 |
--------------------------------------------------------------------------------
/features/.settings/org.eclipse.jdt.launching.prefs:
--------------------------------------------------------------------------------
1 | #Wed Jul 08 06:32:43 CDT 2009
2 | eclipse.preferences.version=1
3 | org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
4 |
--------------------------------------------------------------------------------
/features/.settings/org.moreunit.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.moreunit.preferences.version=2
3 | org.moreunit.test_type=junit4
4 | org.moreunit.unitsourcefolder=joist-features\:src/codegen\:joist-features\:src/test/java
5 | org.moreunit.useprojectsettings=true
6 |
--------------------------------------------------------------------------------
/features/FeaturesBackup.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/features/FeaturesCodegen.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/features/FeaturesCycle.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/features/FeaturesPermissionFixer.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/SchemaHash.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class SchemaHash {
4 |
5 | public static final int hashCode = -2064717291;
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ChildFQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ChildF;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ChildFQueriesCodegen extends AbstractQueries {
7 |
8 | public ChildFQueriesCodegen() {
9 | super(ChildF.class);
10 | }
11 |
12 | public void delete(ChildF instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ChildGQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ChildG;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ChildGQueriesCodegen extends AbstractQueries {
7 |
8 | public ChildGQueriesCodegen() {
9 | super(ChildG.class);
10 | }
11 |
12 | public void delete(ChildG instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ChildHQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ChildH;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ChildHQueriesCodegen extends AbstractQueries {
7 |
8 | public ChildHQueriesCodegen() {
9 | super(ChildH.class);
10 | }
11 |
12 | public void delete(ChildH instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ChildIAQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ChildIA;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ChildIAQueriesCodegen extends AbstractQueries {
7 |
8 | public ChildIAQueriesCodegen() {
9 | super(ChildIA.class);
10 | }
11 |
12 | public void delete(ChildIA instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ChildIBQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ChildIB;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ChildIBQueriesCodegen extends AbstractQueries {
7 |
8 | public ChildIBQueriesCodegen() {
9 | super(ChildIB.class);
10 | }
11 |
12 | public void delete(ChildIB instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ChildQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.Child;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ChildQueriesCodegen extends AbstractQueries {
7 |
8 | public ChildQueriesCodegen() {
9 | super(Child.class);
10 | }
11 |
12 | public void delete(Child instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/GrandChildQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.GrandChild;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class GrandChildQueriesCodegen extends AbstractQueries {
7 |
8 | public GrandChildQueriesCodegen() {
9 | super(GrandChild.class);
10 | }
11 |
12 | public void delete(GrandChild instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/HistoryEntryQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.HistoryEntry;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class HistoryEntryQueriesCodegen extends AbstractQueries {
7 |
8 | public HistoryEntryQueriesCodegen() {
9 | super(HistoryEntry.class);
10 | }
11 |
12 | public void delete(HistoryEntry instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/InheritanceABaseQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.InheritanceABase;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class InheritanceABaseQueriesCodegen extends AbstractQueries {
7 |
8 | public InheritanceABaseQueriesCodegen() {
9 | super(InheritanceABase.class);
10 | }
11 |
12 | public void delete(InheritanceABase instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/InheritanceAOwnerQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.InheritanceAOwner;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class InheritanceAOwnerQueriesCodegen extends AbstractQueries {
7 |
8 | public InheritanceAOwnerQueriesCodegen() {
9 | super(InheritanceAOwner.class);
10 | }
11 |
12 | public void delete(InheritanceAOwner instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/InheritanceASubOneChildQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.InheritanceASubOneChild;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class InheritanceASubOneChildQueriesCodegen extends AbstractQueries {
7 |
8 | public InheritanceASubOneChildQueriesCodegen() {
9 | super(InheritanceASubOneChild.class);
10 | }
11 |
12 | public void delete(InheritanceASubOneChild instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/InheritanceASubOneQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.InheritanceABase;
4 | import features.domain.InheritanceASubOne;
5 | import joist.domain.AbstractQueries;
6 |
7 | abstract class InheritanceASubOneQueriesCodegen extends AbstractQueries {
8 |
9 | public InheritanceASubOneQueriesCodegen() {
10 | super(InheritanceASubOne.class);
11 | }
12 |
13 | public void delete(InheritanceASubOne instance) {
14 | InheritanceABase.queries.delete(instance);
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/InheritanceASubTwoQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.InheritanceABase;
4 | import features.domain.InheritanceASubTwo;
5 | import joist.domain.AbstractQueries;
6 |
7 | abstract class InheritanceASubTwoQueriesCodegen extends AbstractQueries {
8 |
9 | public InheritanceASubTwoQueriesCodegen() {
10 | super(InheritanceASubTwo.class);
11 | }
12 |
13 | public void delete(InheritanceASubTwo instance) {
14 | InheritanceABase.queries.delete(instance);
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/InheritanceAThingQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.InheritanceAThing;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class InheritanceAThingQueriesCodegen extends AbstractQueries {
7 |
8 | public InheritanceAThingQueriesCodegen() {
9 | super(InheritanceAThing.class);
10 | }
11 |
12 | public void delete(InheritanceAThing instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/InheritanceBBottomQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.InheritanceBBottom;
4 | import features.domain.InheritanceBMiddle;
5 | import joist.domain.AbstractQueries;
6 |
7 | abstract class InheritanceBBottomQueriesCodegen extends AbstractQueries {
8 |
9 | public InheritanceBBottomQueriesCodegen() {
10 | super(InheritanceBBottom.class);
11 | }
12 |
13 | public void delete(InheritanceBBottom instance) {
14 | InheritanceBMiddle.queries.delete(instance);
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/InheritanceBMiddleQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.InheritanceBMiddle;
4 | import features.domain.InheritanceBRoot;
5 | import joist.domain.AbstractQueries;
6 |
7 | abstract class InheritanceBMiddleQueriesCodegen extends AbstractQueries {
8 |
9 | public InheritanceBMiddleQueriesCodegen() {
10 | super(InheritanceBMiddle.class);
11 | }
12 |
13 | public void delete(InheritanceBMiddle instance) {
14 | InheritanceBRoot.queries.delete(instance);
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/InheritanceBRootChildQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.InheritanceBRootChild;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class InheritanceBRootChildQueriesCodegen extends AbstractQueries {
7 |
8 | public InheritanceBRootChildQueriesCodegen() {
9 | super(InheritanceBRootChild.class);
10 | }
11 |
12 | public void delete(InheritanceBRootChild instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/InheritanceBRootQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.InheritanceBRoot;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class InheritanceBRootQueriesCodegen extends AbstractQueries {
7 |
8 | public InheritanceBRootQueriesCodegen() {
9 | super(InheritanceBRoot.class);
10 | }
11 |
12 | public void delete(InheritanceBRoot instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/InheritanceCFoo1QueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.InheritanceC;
4 | import features.domain.InheritanceCFoo1;
5 | import joist.domain.AbstractQueries;
6 |
7 | abstract class InheritanceCFoo1QueriesCodegen extends AbstractQueries {
8 |
9 | public InheritanceCFoo1QueriesCodegen() {
10 | super(InheritanceCFoo1.class);
11 | }
12 |
13 | public void delete(InheritanceCFoo1 instance) {
14 | InheritanceC.queries.delete(instance);
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/InheritanceCFoo2QueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.InheritanceC;
4 | import features.domain.InheritanceCFoo2;
5 | import joist.domain.AbstractQueries;
6 |
7 | abstract class InheritanceCFoo2QueriesCodegen extends AbstractQueries {
8 |
9 | public InheritanceCFoo2QueriesCodegen() {
10 | super(InheritanceCFoo2.class);
11 | }
12 |
13 | public void delete(InheritanceCFoo2 instance) {
14 | InheritanceC.queries.delete(instance);
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/InheritanceCQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.InheritanceC;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class InheritanceCQueriesCodegen extends AbstractQueries {
7 |
8 | public InheritanceCQueriesCodegen() {
9 | super(InheritanceC.class);
10 | }
11 |
12 | public void delete(InheritanceC instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ManyToManyABarQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ManyToManyABar;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ManyToManyABarQueriesCodegen extends AbstractQueries {
7 |
8 | public ManyToManyABarQueriesCodegen() {
9 | super(ManyToManyABar.class);
10 | }
11 |
12 | public void delete(ManyToManyABar instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ManyToManyAFooQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ManyToManyAFoo;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ManyToManyAFooQueriesCodegen extends AbstractQueries {
7 |
8 | public ManyToManyAFooQueriesCodegen() {
9 | super(ManyToManyAFoo.class);
10 | }
11 |
12 | public void delete(ManyToManyAFoo instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ManyToManyAFooToBarQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ManyToManyAFooToBar;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ManyToManyAFooToBarQueriesCodegen extends AbstractQueries {
7 |
8 | public ManyToManyAFooToBarQueriesCodegen() {
9 | super(ManyToManyAFooToBar.class);
10 | }
11 |
12 | public void delete(ManyToManyAFooToBar instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ManyToManyBBarQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ManyToManyBBar;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ManyToManyBBarQueriesCodegen extends AbstractQueries {
7 |
8 | public ManyToManyBBarQueriesCodegen() {
9 | super(ManyToManyBBar.class);
10 | }
11 |
12 | public void delete(ManyToManyBBar instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ManyToManyBFooQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ManyToManyBFoo;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ManyToManyBFooQueriesCodegen extends AbstractQueries {
7 |
8 | public ManyToManyBFooQueriesCodegen() {
9 | super(ManyToManyBFoo.class);
10 | }
11 |
12 | public void delete(ManyToManyBFoo instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ManyToManyBFooToBarQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ManyToManyBFooToBar;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ManyToManyBFooToBarQueriesCodegen extends AbstractQueries {
7 |
8 | public ManyToManyBFooToBarQueriesCodegen() {
9 | super(ManyToManyBFooToBar.class);
10 | }
11 |
12 | public void delete(ManyToManyBFooToBar instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/OneToOneABarQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.OneToOneABar;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class OneToOneABarQueriesCodegen extends AbstractQueries {
7 |
8 | public OneToOneABarQueriesCodegen() {
9 | super(OneToOneABar.class);
10 | }
11 |
12 | public void delete(OneToOneABar instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/OneToOneAFooQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.OneToOneAFoo;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class OneToOneAFooQueriesCodegen extends AbstractQueries {
7 |
8 | public OneToOneAFooQueriesCodegen() {
9 | super(OneToOneAFoo.class);
10 | }
11 |
12 | public void delete(OneToOneAFoo instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/OneToOneBBarQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.OneToOneBBar;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class OneToOneBBarQueriesCodegen extends AbstractQueries {
7 |
8 | public OneToOneBBarQueriesCodegen() {
9 | super(OneToOneBBar.class);
10 | }
11 |
12 | public void delete(OneToOneBBar instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/OneToOneBFooQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.OneToOneBFoo;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class OneToOneBFooQueriesCodegen extends AbstractQueries {
7 |
8 | public OneToOneBFooQueriesCodegen() {
9 | super(OneToOneBFoo.class);
10 | }
11 |
12 | public void delete(OneToOneBFoo instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ParentBChildBarQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ParentBChildBar;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ParentBChildBarQueriesCodegen extends AbstractQueries {
7 |
8 | public ParentBChildBarQueriesCodegen() {
9 | super(ParentBChildBar.class);
10 | }
11 |
12 | public void delete(ParentBChildBar instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ParentBChildFooQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ParentBChildFoo;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ParentBChildFooQueriesCodegen extends AbstractQueries {
7 |
8 | public ParentBChildFooQueriesCodegen() {
9 | super(ParentBChildFoo.class);
10 | }
11 |
12 | public void delete(ParentBChildFoo instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ParentBChildZazQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ParentBChildZaz;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ParentBChildZazQueriesCodegen extends AbstractQueries {
7 |
8 | public ParentBChildZazQueriesCodegen() {
9 | super(ParentBChildZaz.class);
10 | }
11 |
12 | public void delete(ParentBChildZaz instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ParentBParentQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ParentBParent;
4 | import features.domain.ParentBParentAlias;
5 | import joist.domain.AbstractQueries;
6 | import joist.domain.orm.queries.Select;
7 |
8 | abstract class ParentBParentQueriesCodegen extends AbstractQueries {
9 |
10 | public ParentBParentQueriesCodegen() {
11 | super(ParentBParent.class);
12 | }
13 |
14 | public void delete(ParentBParent instance) {
15 | super.delete(instance);
16 | }
17 |
18 | public ParentBParent findByName(String name) {
19 | ParentBParentAlias pbp0 = new ParentBParentAlias("pbp0");
20 | return Select.from(pbp0).where(pbp0.name.eq(name)).unique();
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ParentCBarQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ParentCBar;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ParentCBarQueriesCodegen extends AbstractQueries {
7 |
8 | public ParentCBarQueriesCodegen() {
9 | super(ParentCBar.class);
10 | }
11 |
12 | public void delete(ParentCBar instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ParentCFooQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ParentCFoo;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ParentCFooQueriesCodegen extends AbstractQueries {
7 |
8 | public ParentCFooQueriesCodegen() {
9 | super(ParentCFoo.class);
10 | }
11 |
12 | public void delete(ParentCFoo instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ParentDChildAQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ParentDChildA;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ParentDChildAQueriesCodegen extends AbstractQueries {
7 |
8 | public ParentDChildAQueriesCodegen() {
9 | super(ParentDChildA.class);
10 | }
11 |
12 | public void delete(ParentDChildA instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ParentDChildBQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ParentDChildB;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ParentDChildBQueriesCodegen extends AbstractQueries {
7 |
8 | public ParentDChildBQueriesCodegen() {
9 | super(ParentDChildB.class);
10 | }
11 |
12 | public void delete(ParentDChildB instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ParentDChildCQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ParentDChildC;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ParentDChildCQueriesCodegen extends AbstractQueries {
7 |
8 | public ParentDChildCQueriesCodegen() {
9 | super(ParentDChildC.class);
10 | }
11 |
12 | public void delete(ParentDChildC instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ParentDToChildCQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ParentDToChildC;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ParentDToChildCQueriesCodegen extends AbstractQueries {
7 |
8 | public ParentDToChildCQueriesCodegen() {
9 | super(ParentDToChildC.class);
10 | }
11 |
12 | public void delete(ParentDToChildC instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ParentEQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ParentE;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ParentEQueriesCodegen extends AbstractQueries {
7 |
8 | public ParentEQueriesCodegen() {
9 | super(ParentE.class);
10 | }
11 |
12 | public void delete(ParentE instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ParentFQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ChildF;
4 | import features.domain.ParentF;
5 | import joist.domain.AbstractQueries;
6 |
7 | abstract class ParentFQueriesCodegen extends AbstractQueries {
8 |
9 | public ParentFQueriesCodegen() {
10 | super(ParentF.class);
11 | }
12 |
13 | public void delete(ParentF instance) {
14 | if (instance.getChildOne() != null) {
15 | ChildF.queries.delete(instance.getChildOne());
16 | }
17 | if (instance.getChildTwo() != null) {
18 | ChildF.queries.delete(instance.getChildTwo());
19 | }
20 | super.delete(instance);
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ParentGQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ChildG;
4 | import features.domain.ParentG;
5 | import joist.domain.AbstractQueries;
6 |
7 | abstract class ParentGQueriesCodegen extends AbstractQueries {
8 |
9 | public ParentGQueriesCodegen() {
10 | super(ParentG.class);
11 | }
12 |
13 | public void delete(ParentG instance) {
14 | if (instance.getParentOneChildG() != null) {
15 | ChildG.queries.delete(instance.getParentOneChildG());
16 | }
17 | if (instance.getParentTwoChildG() != null) {
18 | ChildG.queries.delete(instance.getParentTwoChildG());
19 | }
20 | super.delete(instance);
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ParentHQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ChildH;
4 | import features.domain.ParentH;
5 | import joist.domain.AbstractQueries;
6 | import joist.util.Copy;
7 |
8 | abstract class ParentHQueriesCodegen extends AbstractQueries {
9 |
10 | public ParentHQueriesCodegen() {
11 | super(ParentH.class);
12 | }
13 |
14 | public void delete(ParentH instance) {
15 | for (ChildH o : Copy.list(instance.getChildHs())) {
16 | ChildH.queries.delete(o);
17 | }
18 | super.delete(instance);
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ParentIQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ChildIA;
4 | import features.domain.ChildIB;
5 | import features.domain.ParentI;
6 | import joist.domain.AbstractQueries;
7 | import joist.util.Copy;
8 |
9 | abstract class ParentIQueriesCodegen extends AbstractQueries {
10 |
11 | public ParentIQueriesCodegen() {
12 | super(ParentI.class);
13 | }
14 |
15 | public void delete(ParentI instance) {
16 | for (ChildIA o : Copy.list(instance.getChildAs())) {
17 | ChildIA.queries.delete(o);
18 | }
19 | if (instance.getChildB() != null) {
20 | ChildIB.queries.delete(instance.getChildB());
21 | }
22 | super.delete(instance);
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ParentQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.Child;
4 | import features.domain.Parent;
5 | import joist.domain.AbstractQueries;
6 | import joist.util.Copy;
7 |
8 | abstract class ParentQueriesCodegen extends AbstractQueries {
9 |
10 | public ParentQueriesCodegen() {
11 | super(Parent.class);
12 | }
13 |
14 | public void delete(Parent instance) {
15 | for (Child o : Copy.list(instance.getChilds())) {
16 | Child.queries.delete(o);
17 | }
18 | super.delete(instance);
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/PrimitivesBQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.PrimitivesB;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class PrimitivesBQueriesCodegen extends AbstractQueries {
7 |
8 | public PrimitivesBQueriesCodegen() {
9 | super(PrimitivesB.class);
10 | }
11 |
12 | public void delete(PrimitivesB instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/PrimitivesCQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.PrimitivesC;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class PrimitivesCQueriesCodegen extends AbstractQueries {
7 |
8 | public PrimitivesCQueriesCodegen() {
9 | super(PrimitivesC.class);
10 | }
11 |
12 | public void delete(PrimitivesC instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/PrimitivesQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.Primitives;
4 | import features.domain.PrimitivesAlias;
5 | import joist.domain.AbstractQueries;
6 | import joist.domain.orm.queries.Select;
7 |
8 | abstract class PrimitivesQueriesCodegen extends AbstractQueries {
9 |
10 | public PrimitivesQueriesCodegen() {
11 | super(Primitives.class);
12 | }
13 |
14 | public void delete(Primitives instance) {
15 | super.delete(instance);
16 | }
17 |
18 | public Primitives findByName(String name) {
19 | PrimitivesAlias p0 = new PrimitivesAlias("p0");
20 | return Select.from(p0).where(p0.name.eq(name)).unique();
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/UserTypesAFooQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.UserTypesAFoo;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class UserTypesAFooQueriesCodegen extends AbstractQueries {
7 |
8 | public UserTypesAFooQueriesCodegen() {
9 | super(UserTypesAFoo.class);
10 | }
11 |
12 | public void delete(UserTypesAFoo instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ValidationAFooQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ValidationAFoo;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ValidationAFooQueriesCodegen extends AbstractQueries {
7 |
8 | public ValidationAFooQueriesCodegen() {
9 | super(ValidationAFoo.class);
10 | }
11 |
12 | public void delete(ValidationAFoo instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ValuesAQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ValuesA;
4 | import features.domain.ValuesAAlias;
5 | import joist.domain.AbstractQueries;
6 | import joist.domain.orm.queries.Select;
7 |
8 | abstract class ValuesAQueriesCodegen extends AbstractQueries {
9 |
10 | public ValuesAQueriesCodegen() {
11 | super(ValuesA.class);
12 | }
13 |
14 | public void delete(ValuesA instance) {
15 | super.delete(instance);
16 | }
17 |
18 | public ValuesA findByName(String name) {
19 | ValuesAAlias va0 = new ValuesAAlias("va0");
20 | return Select.from(va0).where(va0.name.eq(name)).unique();
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/features/src/codegen/java/features/domain/queries/ValuesBQueriesCodegen.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import features.domain.ValuesB;
4 | import joist.domain.AbstractQueries;
5 |
6 | abstract class ValuesBQueriesCodegen extends AbstractQueries {
7 |
8 | public ValuesBQueriesCodegen() {
9 | super(ValuesB.class);
10 | }
11 |
12 | public void delete(ValuesB instance) {
13 | super.delete(instance);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/Child.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class Child extends ChildCodegen {
4 |
5 | public Child() {
6 | }
7 |
8 | public Child(Parent parent, String name) {
9 | this.setParent(parent);
10 | this.setName(name);
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ChildF.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ChildF extends ChildFCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ChildG.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ChildG extends ChildGCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ChildH.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ChildH extends ChildHCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ChildIA.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ChildIA extends ChildIACodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ChildIB.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ChildIB extends ChildIBCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/CodeADomainObject.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class CodeADomainObject extends CodeADomainObjectCodegen {
4 |
5 | public CodeADomainObject() {
6 | this.defaultName("the default name");
7 | this.defaultCodeAColor(CodeAColor.BLUE);
8 | }
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/GrandChild.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class GrandChild extends GrandChildCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/HistoryEntry.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class HistoryEntry extends HistoryEntryCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/InheritanceABase.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class InheritanceABase extends InheritanceABaseCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/InheritanceAOwner.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class InheritanceAOwner extends InheritanceAOwnerCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/InheritanceASubOne.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class InheritanceASubOne extends InheritanceASubOneCodegen {
4 |
5 | public InheritanceASubOne() {
6 | }
7 |
8 | public InheritanceASubOne(String name, String one) {
9 | this.setName(name);
10 | this.setOne(one);
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/InheritanceASubOneChild.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class InheritanceASubOneChild extends InheritanceASubOneChildCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/InheritanceASubTwo.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class InheritanceASubTwo extends InheritanceASubTwoCodegen {
4 |
5 | public InheritanceASubTwo() {
6 | }
7 |
8 | public InheritanceASubTwo(String name, String two) {
9 | this.setName(name);
10 | this.setTwo(two);
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/InheritanceAThing.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class InheritanceAThing extends InheritanceAThingCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/InheritanceBBottom.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class InheritanceBBottom extends InheritanceBBottomCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/InheritanceBMiddle.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class InheritanceBMiddle extends InheritanceBMiddleCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/InheritanceBRoot.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class InheritanceBRoot extends InheritanceBRootCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/InheritanceBRootChild.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class InheritanceBRootChild extends InheritanceBRootChildCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/InheritanceC.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class InheritanceC extends InheritanceCCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/InheritanceCFoo1.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class InheritanceCFoo1 extends InheritanceCFoo1Codegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/InheritanceCFoo2.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class InheritanceCFoo2 extends InheritanceCFoo2Codegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ManyToManyABar.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ManyToManyABar extends ManyToManyABarCodegen {
4 |
5 | public ManyToManyABar() {
6 | }
7 |
8 | public ManyToManyABar(String name) {
9 | this.setName(name);
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ManyToManyAFoo.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ManyToManyAFoo extends ManyToManyAFooCodegen {
4 |
5 | public ManyToManyAFoo() {
6 | }
7 |
8 | public ManyToManyAFoo(String name) {
9 | this.setName(name);
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ManyToManyAFooToBar.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ManyToManyAFooToBar extends ManyToManyAFooToBarCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ManyToManyBBar.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ManyToManyBBar extends ManyToManyBBarCodegen {
4 |
5 | public ManyToManyBBar() {
6 | }
7 |
8 | public ManyToManyBBar(String name) {
9 | this.setName(name);
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ManyToManyBFoo.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ManyToManyBFoo extends ManyToManyBFooCodegen {
4 |
5 | public ManyToManyBFoo() {
6 | }
7 |
8 | public ManyToManyBFoo(String name) {
9 | this.setName(name);
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ManyToManyBFooToBar.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ManyToManyBFooToBar extends ManyToManyBFooToBarCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/OneToOneABar.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class OneToOneABar extends OneToOneABarCodegen {
4 |
5 | public OneToOneABar() {
6 | }
7 |
8 | public OneToOneABar(String name) {
9 | this.setName(name);
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/OneToOneAFoo.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class OneToOneAFoo extends OneToOneAFooCodegen {
4 |
5 | public OneToOneAFoo() {
6 | }
7 |
8 | public OneToOneAFoo(String name) {
9 | this.setName(name);
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/OneToOneBBar.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class OneToOneBBar extends OneToOneBBarCodegen {
4 |
5 | public OneToOneBBar() {
6 | }
7 |
8 | public OneToOneBBar(String name) {
9 | this.setName(name);
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/OneToOneBFoo.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class OneToOneBFoo extends OneToOneBFooCodegen {
4 |
5 | public OneToOneBFoo() {
6 | }
7 |
8 | public OneToOneBFoo(String name) {
9 | this.setName(name);
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/Parent.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class Parent extends ParentCodegen {
4 |
5 | public Parent() {
6 | }
7 |
8 | public Parent(String name) {
9 | this.setName(name);
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ParentBChildBar.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ParentBChildBar extends ParentBChildBarCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ParentBChildFoo.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ParentBChildFoo extends ParentBChildFooCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ParentBChildZaz.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ParentBChildZaz extends ParentBChildZazCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ParentBParent.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ParentBParent extends ParentBParentCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ParentCBar.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ParentCBar extends ParentCBarCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ParentCFoo.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ParentCFoo extends ParentCFooCodegen {
4 |
5 | public ParentCFoo() {
6 | }
7 |
8 | public ParentCFoo(String name) {
9 | this.setName(name);
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ParentD.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ParentD extends ParentDCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ParentDChildA.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ParentDChildA extends ParentDChildACodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ParentDChildB.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ParentDChildB extends ParentDChildBCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ParentDChildC.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ParentDChildC extends ParentDChildCCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ParentDToChildC.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ParentDToChildC extends ParentDToChildCCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ParentE.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ParentE extends ParentECodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ParentF.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ParentF extends ParentFCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ParentG.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ParentG extends ParentGCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ParentH.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ParentH extends ParentHCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ParentI.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ParentI extends ParentICodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/Primitives.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class Primitives extends PrimitivesCodegen {
4 |
5 | public Primitives() {
6 | }
7 |
8 | public Primitives(String name) {
9 | this.setName(name);
10 | this.setFlag(false);
11 | }
12 |
13 | public Primitives flag(boolean flag) {
14 | this.setFlag(flag);
15 | return this;
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/PrimitivesB.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class PrimitivesB extends PrimitivesBCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/PrimitivesC.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class PrimitivesC extends PrimitivesCCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/UserTypesAFoo.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class UserTypesAFoo extends UserTypesAFooCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ValidationAFoo.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | import joist.domain.util.converters.TextString;
4 | import joist.domain.validation.ValidationErrors;
5 | import joist.domain.validation.rules.Rule;
6 |
7 | public class ValidationAFoo extends ValidationAFooCodegen {
8 |
9 | private static final Rule customRule = new Rule() {
10 | public void validate(ValidationErrors errors, ValidationAFoo foo) {
11 | if ("bar".equals(foo.getName())) {
12 | errors.addPropertyError(foo, "name", "must not be bar");
13 | }
14 | if ("baz".equals(foo.getName())) {
15 | errors.addObjectError(foo, "is all messed up");
16 | }
17 | }
18 | };
19 |
20 | public ValidationAFoo() {
21 | this.addRule(customRule);
22 | }
23 |
24 | @Override
25 | public String toTextString() {
26 | return TextString.join(this.getName());
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ValuesA.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ValuesA extends ValuesACodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/ValuesB.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | public class ValuesB extends ValuesBCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ChildBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.Child;
4 | import features.domain.Parent;
5 |
6 | public class ChildBuilder extends ChildBuilderCodegen {
7 |
8 | public ChildBuilder(Child instance) {
9 | super(instance);
10 | }
11 |
12 | @Override
13 | public ChildBuilder parent(Parent parent) {
14 | // a silly side affect so we can test this method gets called
15 | this.name("foo");
16 | return super.parent(parent);
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ChildFBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ChildF;
4 |
5 | public class ChildFBuilder extends ChildFBuilderCodegen {
6 |
7 | public ChildFBuilder(ChildF instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ChildGBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ChildG;
4 |
5 | public class ChildGBuilder extends ChildGBuilderCodegen {
6 |
7 | public ChildGBuilder(ChildG instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ChildHBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ChildH;
4 |
5 | public class ChildHBuilder extends ChildHBuilderCodegen {
6 |
7 | public ChildHBuilder(ChildH instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ChildIABuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ChildIA;
4 |
5 | public class ChildIABuilder extends ChildIABuilderCodegen {
6 |
7 | public ChildIABuilder(ChildIA instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ChildIBBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ChildIB;
4 |
5 | public class ChildIBBuilder extends ChildIBBuilderCodegen {
6 |
7 | public ChildIBBuilder(ChildIB instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/CodeADomainObjectBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.CodeADomainObject;
4 |
5 | public class CodeADomainObjectBuilder extends CodeADomainObjectBuilderCodegen {
6 |
7 | public CodeADomainObjectBuilder(CodeADomainObject instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/GrandChildBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.GrandChild;
4 |
5 | public class GrandChildBuilder extends GrandChildBuilderCodegen {
6 |
7 | public GrandChildBuilder(GrandChild instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/HistoryEntryBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.HistoryEntry;
4 |
5 | public class HistoryEntryBuilder extends HistoryEntryBuilderCodegen {
6 |
7 | public HistoryEntryBuilder(HistoryEntry instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/InheritanceABaseBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.InheritanceABase;
4 |
5 | public class InheritanceABaseBuilder extends InheritanceABaseBuilderCodegen {
6 |
7 | public InheritanceABaseBuilder(InheritanceABase instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/InheritanceAOwnerBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.InheritanceAOwner;
4 |
5 | public class InheritanceAOwnerBuilder extends InheritanceAOwnerBuilderCodegen {
6 |
7 | public InheritanceAOwnerBuilder(InheritanceAOwner instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/InheritanceASubOneBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.InheritanceASubOne;
4 |
5 | public class InheritanceASubOneBuilder extends InheritanceASubOneBuilderCodegen {
6 |
7 | public InheritanceASubOneBuilder(InheritanceASubOne instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/InheritanceASubOneChildBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.InheritanceASubOneChild;
4 |
5 | public class InheritanceASubOneChildBuilder extends InheritanceASubOneChildBuilderCodegen {
6 |
7 | public InheritanceASubOneChildBuilder(InheritanceASubOneChild instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/InheritanceASubTwoBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.InheritanceASubTwo;
4 |
5 | public class InheritanceASubTwoBuilder extends InheritanceASubTwoBuilderCodegen {
6 |
7 | public InheritanceASubTwoBuilder(InheritanceASubTwo instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/InheritanceAThingBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.InheritanceAThing;
4 |
5 | public class InheritanceAThingBuilder extends InheritanceAThingBuilderCodegen {
6 |
7 | public InheritanceAThingBuilder(InheritanceAThing instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/InheritanceBBottomBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.InheritanceBBottom;
4 |
5 | public class InheritanceBBottomBuilder extends InheritanceBBottomBuilderCodegen {
6 |
7 | public InheritanceBBottomBuilder(InheritanceBBottom instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/InheritanceBMiddleBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.InheritanceBMiddle;
4 |
5 | public class InheritanceBMiddleBuilder extends InheritanceBMiddleBuilderCodegen {
6 |
7 | public InheritanceBMiddleBuilder(InheritanceBMiddle instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/InheritanceBRootBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.InheritanceBRoot;
4 |
5 | public class InheritanceBRootBuilder extends InheritanceBRootBuilderCodegen {
6 |
7 | public InheritanceBRootBuilder(InheritanceBRoot instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/InheritanceBRootChildBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.InheritanceBRootChild;
4 |
5 | public class InheritanceBRootChildBuilder extends InheritanceBRootChildBuilderCodegen {
6 |
7 | public InheritanceBRootChildBuilder(InheritanceBRootChild instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/InheritanceCBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.InheritanceC;
4 |
5 | public class InheritanceCBuilder extends InheritanceCBuilderCodegen {
6 |
7 | public InheritanceCBuilder(InheritanceC instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/InheritanceCFoo1Builder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.InheritanceCFoo1;
4 |
5 | public class InheritanceCFoo1Builder extends InheritanceCFoo1BuilderCodegen {
6 |
7 | public InheritanceCFoo1Builder(InheritanceCFoo1 instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/InheritanceCFoo2Builder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.InheritanceCFoo2;
4 |
5 | public class InheritanceCFoo2Builder extends InheritanceCFoo2BuilderCodegen {
6 |
7 | public InheritanceCFoo2Builder(InheritanceCFoo2 instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ManyToManyABarBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ManyToManyABar;
4 |
5 | public class ManyToManyABarBuilder extends ManyToManyABarBuilderCodegen {
6 |
7 | public ManyToManyABarBuilder(ManyToManyABar instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ManyToManyAFooBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ManyToManyAFoo;
4 |
5 | public class ManyToManyAFooBuilder extends ManyToManyAFooBuilderCodegen {
6 |
7 | public ManyToManyAFooBuilder(ManyToManyAFoo instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ManyToManyAFooToBarBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ManyToManyAFooToBar;
4 |
5 | public class ManyToManyAFooToBarBuilder extends ManyToManyAFooToBarBuilderCodegen {
6 |
7 | public ManyToManyAFooToBarBuilder(ManyToManyAFooToBar instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ManyToManyBBarBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ManyToManyBBar;
4 |
5 | public class ManyToManyBBarBuilder extends ManyToManyBBarBuilderCodegen {
6 |
7 | public ManyToManyBBarBuilder(ManyToManyBBar instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ManyToManyBFooBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ManyToManyBFoo;
4 |
5 | public class ManyToManyBFooBuilder extends ManyToManyBFooBuilderCodegen {
6 |
7 | public ManyToManyBFooBuilder(ManyToManyBFoo instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ManyToManyBFooToBarBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ManyToManyBFooToBar;
4 |
5 | public class ManyToManyBFooToBarBuilder extends ManyToManyBFooToBarBuilderCodegen {
6 |
7 | public ManyToManyBFooToBarBuilder(ManyToManyBFooToBar instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/OneToOneABarBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.OneToOneABar;
4 |
5 | public class OneToOneABarBuilder extends OneToOneABarBuilderCodegen {
6 |
7 | public OneToOneABarBuilder(OneToOneABar instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/OneToOneAFooBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.OneToOneAFoo;
4 |
5 | public class OneToOneAFooBuilder extends OneToOneAFooBuilderCodegen {
6 |
7 | public OneToOneAFooBuilder(OneToOneAFoo instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/OneToOneBBarBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.OneToOneBBar;
4 |
5 | public class OneToOneBBarBuilder extends OneToOneBBarBuilderCodegen {
6 |
7 | public OneToOneBBarBuilder(OneToOneBBar instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/OneToOneBFooBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.OneToOneBFoo;
4 |
5 | public class OneToOneBFooBuilder extends OneToOneBFooBuilderCodegen {
6 |
7 | public OneToOneBFooBuilder(OneToOneBFoo instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ParentBChildBarBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ParentBChildBar;
4 |
5 | public class ParentBChildBarBuilder extends ParentBChildBarBuilderCodegen {
6 |
7 | public ParentBChildBarBuilder(ParentBChildBar instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ParentBChildFooBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ParentBChildFoo;
4 |
5 | public class ParentBChildFooBuilder extends ParentBChildFooBuilderCodegen {
6 |
7 | public ParentBChildFooBuilder(ParentBChildFoo instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ParentBChildZazBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ParentBChildZaz;
4 |
5 | public class ParentBChildZazBuilder extends ParentBChildZazBuilderCodegen {
6 |
7 | public ParentBChildZazBuilder(ParentBChildZaz instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ParentBParentBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ParentBParent;
4 |
5 | public class ParentBParentBuilder extends ParentBParentBuilderCodegen {
6 |
7 | public ParentBParentBuilder(ParentBParent instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ParentBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.Parent;
4 |
5 | public class ParentBuilder extends ParentBuilderCodegen {
6 |
7 | public ParentBuilder(Parent instance) {
8 | super(instance);
9 | }
10 |
11 | @Override
12 | public String defaultName() {
13 | return "parent";
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ParentCBarBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ParentCBar;
4 |
5 | public class ParentCBarBuilder extends ParentCBarBuilderCodegen {
6 |
7 | public ParentCBarBuilder(ParentCBar instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ParentCFooBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ParentCFoo;
4 |
5 | public class ParentCFooBuilder extends ParentCFooBuilderCodegen {
6 |
7 | public ParentCFooBuilder(ParentCFoo instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ParentDBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ParentD;
4 |
5 | public class ParentDBuilder extends ParentDBuilderCodegen {
6 |
7 | public ParentDBuilder(ParentD instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ParentDChildABuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ParentDChildA;
4 |
5 | public class ParentDChildABuilder extends ParentDChildABuilderCodegen {
6 |
7 | public ParentDChildABuilder(ParentDChildA instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ParentDChildBBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ParentDChildB;
4 |
5 | public class ParentDChildBBuilder extends ParentDChildBBuilderCodegen {
6 |
7 | public ParentDChildBBuilder(ParentDChildB instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ParentDChildCBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ParentDChildC;
4 |
5 | public class ParentDChildCBuilder extends ParentDChildCBuilderCodegen {
6 |
7 | public ParentDChildCBuilder(ParentDChildC instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ParentDToChildCBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ParentDToChildC;
4 |
5 | public class ParentDToChildCBuilder extends ParentDToChildCBuilderCodegen {
6 |
7 | public ParentDToChildCBuilder(ParentDToChildC instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ParentEBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ParentE;
4 |
5 | public class ParentEBuilder extends ParentEBuilderCodegen {
6 |
7 | public ParentEBuilder(ParentE instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ParentFBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ParentF;
4 |
5 | public class ParentFBuilder extends ParentFBuilderCodegen {
6 |
7 | public ParentFBuilder(ParentF instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ParentGBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ParentG;
4 |
5 | public class ParentGBuilder extends ParentGBuilderCodegen {
6 |
7 | public ParentGBuilder(ParentG instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ParentHBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ParentH;
4 |
5 | public class ParentHBuilder extends ParentHBuilderCodegen {
6 |
7 | public ParentHBuilder(ParentH instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ParentIBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ParentI;
4 |
5 | public class ParentIBuilder extends ParentIBuilderCodegen {
6 |
7 | public ParentIBuilder(ParentI instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/PrimitivesBBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.PrimitivesB;
4 |
5 | public class PrimitivesBBuilder extends PrimitivesBBuilderCodegen {
6 |
7 | public PrimitivesBBuilder(PrimitivesB instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/PrimitivesBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.Primitives;
4 |
5 | public class PrimitivesBuilder extends PrimitivesBuilderCodegen {
6 |
7 | public PrimitivesBuilder(Primitives instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/PrimitivesCBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.PrimitivesC;
4 |
5 | public class PrimitivesCBuilder extends PrimitivesCBuilderCodegen {
6 |
7 | public PrimitivesCBuilder(PrimitivesC instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/UserTypesAFooBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.UserTypesAFoo;
4 |
5 | public class UserTypesAFooBuilder extends UserTypesAFooBuilderCodegen {
6 |
7 | public UserTypesAFooBuilder(UserTypesAFoo instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ValidationAFooBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ValidationAFoo;
4 |
5 | public class ValidationAFooBuilder extends ValidationAFooBuilderCodegen {
6 |
7 | public ValidationAFooBuilder(ValidationAFoo instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ValuesABuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ValuesA;
4 |
5 | public class ValuesABuilder extends ValuesABuilderCodegen {
6 |
7 | public ValuesABuilder(ValuesA instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/builders/ValuesBBuilder.java:
--------------------------------------------------------------------------------
1 | package features.domain.builders;
2 |
3 | import features.domain.ValuesB;
4 |
5 | public class ValuesBBuilder extends ValuesBBuilderCodegen {
6 |
7 | public ValuesBBuilder(ValuesB instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ChildFQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ChildFQueries extends ChildFQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ChildGQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ChildGQueries extends ChildGQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ChildHQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ChildHQueries extends ChildHQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ChildIAQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ChildIAQueries extends ChildIAQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ChildIBQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ChildIBQueries extends ChildIBQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ChildQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import java.util.List;
4 |
5 | import joist.domain.orm.queries.Select;
6 | import features.domain.Child;
7 | import features.domain.ChildAlias;
8 | import features.domain.ParentAlias;
9 |
10 | public class ChildQueries extends ChildQueriesCodegen {
11 |
12 | public List findForParentOfName(String name) {
13 | // SELECT * FROM child c
14 | // INNER JOIN parent p ON p.id = c.parent_id
15 | // WHERE p.name = :name
16 | // ORDER BY c.name
17 |
18 | ChildAlias c = new ChildAlias("c");
19 | ParentAlias p = new ParentAlias("p");
20 | Select q = Select.from(c);
21 | q.join(p.on(c.parent));
22 | q.where(p.name.eq(name));
23 | q.orderBy(c.name.asc());
24 | return q.list();
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/CodeADomainObjectQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class CodeADomainObjectQueries extends CodeADomainObjectQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/GrandChildQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class GrandChildQueries extends GrandChildQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/HistoryEntryQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class HistoryEntryQueries extends HistoryEntryQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/InheritanceABaseQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import java.util.List;
4 |
5 | import joist.domain.orm.queries.Select;
6 | import features.domain.InheritanceABase;
7 | import features.domain.InheritanceABaseAlias;
8 |
9 | public class InheritanceABaseQueries extends InheritanceABaseQueriesCodegen {
10 |
11 | public List findAll() {
12 | InheritanceABaseAlias b = new InheritanceABaseAlias("b");
13 | return Select.from(b).orderBy(b.id.asc()).list();
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/InheritanceAOwnerQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class InheritanceAOwnerQueries extends InheritanceAOwnerQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/InheritanceASubOneChildQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class InheritanceASubOneChildQueries extends InheritanceASubOneChildQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/InheritanceASubOneQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import java.util.List;
4 |
5 | import joist.domain.orm.queries.Select;
6 | import features.domain.InheritanceASubOne;
7 | import features.domain.InheritanceASubOneAlias;
8 |
9 | public class InheritanceASubOneQueries extends InheritanceASubOneQueriesCodegen {
10 |
11 | public List findAll() {
12 | InheritanceASubOneAlias sa = new InheritanceASubOneAlias("sa");
13 | return Select.from(sa).list();
14 | }
15 |
16 | public InheritanceASubOne findByName(String name) {
17 | InheritanceASubOneAlias sa = new InheritanceASubOneAlias("sa");
18 | Select q = Select.from(sa);
19 | q.where(sa.name.eq(name));
20 | return q.unique();
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/InheritanceASubTwoQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class InheritanceASubTwoQueries extends InheritanceASubTwoQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/InheritanceAThingQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class InheritanceAThingQueries extends InheritanceAThingQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/InheritanceBBottomQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class InheritanceBBottomQueries extends InheritanceBBottomQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/InheritanceBMiddleQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class InheritanceBMiddleQueries extends InheritanceBMiddleQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/InheritanceBRootChildQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class InheritanceBRootChildQueries extends InheritanceBRootChildQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/InheritanceBRootQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class InheritanceBRootQueries extends InheritanceBRootQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/InheritanceCFoo1Queries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class InheritanceCFoo1Queries extends InheritanceCFoo1QueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/InheritanceCFoo2Queries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class InheritanceCFoo2Queries extends InheritanceCFoo2QueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/InheritanceCQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class InheritanceCQueries extends InheritanceCQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ManyToManyABarQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ManyToManyABarQueries extends ManyToManyABarQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ManyToManyAFooQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ManyToManyAFooQueries extends ManyToManyAFooQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ManyToManyAFooToBarQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ManyToManyAFooToBarQueries extends ManyToManyAFooToBarQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ManyToManyBBarQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ManyToManyBBarQueries extends ManyToManyBBarQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ManyToManyBFooQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ManyToManyBFooQueries extends ManyToManyBFooQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ManyToManyBFooToBarQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ManyToManyBFooToBarQueries extends ManyToManyBFooToBarQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/OneToOneABarQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class OneToOneABarQueries extends OneToOneABarQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/OneToOneAFooQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class OneToOneAFooQueries extends OneToOneAFooQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/OneToOneBBarQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class OneToOneBBarQueries extends OneToOneBBarQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/OneToOneBFooQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class OneToOneBFooQueries extends OneToOneBFooQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ParentBChildBarQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ParentBChildBarQueries extends ParentBChildBarQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ParentBChildFooQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import java.util.List;
4 |
5 | import joist.domain.orm.queries.Select;
6 | import features.domain.ParentBChildFoo;
7 | import features.domain.ParentBChildFooAlias;
8 | import features.domain.ParentBParentAlias;
9 |
10 | public class ParentBChildFooQueries extends ParentBChildFooQueriesCodegen {
11 |
12 | public List findByParentName(String name) {
13 | ParentBParentAlias p = new ParentBParentAlias("p");
14 | ParentBChildFooAlias f = new ParentBChildFooAlias("f");
15 |
16 | Select q = Select.from(f);
17 | q.join(p.on(f.parentBParent));
18 | q.where(p.name.eq(name));
19 | return q.list();
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ParentBChildZazQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ParentBChildZazQueries extends ParentBChildZazQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ParentBParentQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ParentBParentQueries extends ParentBParentQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ParentCBarQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ParentCBarQueries extends ParentCBarQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ParentCFooQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ParentCFooQueries extends ParentCFooQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ParentDChildAQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ParentDChildAQueries extends ParentDChildAQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ParentDChildBQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ParentDChildBQueries extends ParentDChildBQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ParentDChildCQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ParentDChildCQueries extends ParentDChildCQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ParentDQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ParentDQueries extends ParentDQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ParentDToChildCQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ParentDToChildCQueries extends ParentDToChildCQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ParentEQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ParentEQueries extends ParentEQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ParentFQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ParentFQueries extends ParentFQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ParentGQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ParentGQueries extends ParentGQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ParentHQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ParentHQueries extends ParentHQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ParentIQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ParentIQueries extends ParentIQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/UserTypesAFooQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | import java.util.List;
4 |
5 | import joist.domain.orm.queries.Select;
6 |
7 | import com.domainlanguage.time.CalendarDate;
8 | import com.domainlanguage.time.CalendarInterval;
9 |
10 | import features.domain.UserTypesAFoo;
11 | import features.domain.UserTypesAFooAlias;
12 |
13 | public class UserTypesAFooQueries extends UserTypesAFooQueriesCodegen {
14 |
15 | public UserTypesAFoo findByCreated(CalendarDate on) {
16 | UserTypesAFooAlias utaf = new UserTypesAFooAlias("utaf");
17 | return Select.from(utaf).where(utaf.created.eq(on)).unique();
18 | }
19 |
20 | public List findByCreatedWithin(CalendarInterval interval) {
21 | UserTypesAFooAlias utaf = new UserTypesAFooAlias("utaf");
22 | return Select.from(utaf).where(utaf.created.within(interval)).list();
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ValidationAFooQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ValidationAFooQueries extends ValidationAFooQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ValuesAQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ValuesAQueries extends ValuesAQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/java/features/domain/queries/ValuesBQueries.java:
--------------------------------------------------------------------------------
1 | package features.domain.queries;
2 |
3 | public class ValuesBQueries extends ValuesBQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/features/src/main/resources/log4j.properties:
--------------------------------------------------------------------------------
1 |
2 | log4j.rootLogger=INFO, console
3 |
4 | log4j.appender.console=org.apache.log4j.ConsoleAppender
5 | log4j.appender.console.layout=org.apache.log4j.PatternLayout
6 | log4j.appender.console.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
7 |
8 | log4j.logger.joist = FINE
9 |
--------------------------------------------------------------------------------
/features/src/migrations/java/features/cli/Cli.java:
--------------------------------------------------------------------------------
1 | package features.cli;
2 |
3 | import joist.util.Reflection;
4 |
5 | import org.apache.commons.lang.StringUtils;
6 |
7 | public class Cli {
8 |
9 | public static void main(String[] args) {
10 | for (String arg : args) {
11 | String[] parts = StringUtils.split(arg, ".", 2);
12 | Object task = Reflection.newInstance("features.cli." + parts[0]);
13 | Reflection.invoke(parts[1], task);
14 | }
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/features/src/migrations/java/features/migrations/m0000.java:
--------------------------------------------------------------------------------
1 | package features.migrations;
2 |
3 | import static joist.migrations.MigrationKeywords.createTable;
4 | import static joist.migrations.MigrationKeywords.execute;
5 | import static joist.migrations.MigrationKeywords.integer;
6 | import joist.migrations.AbstractMigration;
7 |
8 | public class m0000 extends AbstractMigration {
9 |
10 | public m0000() {
11 | super("Create schema_version.");
12 | }
13 |
14 | public void apply() {
15 | createTable("schema_version", integer("update_lock"), integer("version"));
16 | execute("INSERT INTO schema_version (update_lock, version) values (1, -1)");
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/features/src/migrations/java/features/migrations/m0001.java:
--------------------------------------------------------------------------------
1 | package features.migrations;
2 |
3 | import static joist.migrations.MigrationKeywords.bool;
4 | import static joist.migrations.MigrationKeywords.createTable;
5 | import static joist.migrations.MigrationKeywords.integer;
6 | import static joist.migrations.MigrationKeywords.primaryKey;
7 | import static joist.migrations.MigrationKeywords.varchar;
8 | import joist.migrations.AbstractMigration;
9 |
10 | public class m0001 extends AbstractMigration {
11 |
12 | public m0001() {
13 | super("Table with primitives.");
14 | }
15 |
16 | public void apply() {
17 | createTable("primitives", //
18 | primaryKey("id"),
19 | bool("flag"),
20 | varchar("name").unique(),
21 | varchar("skipped").nullable(),
22 | integer("version"));
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/features/src/migrations/java/features/migrations/m0008.java:
--------------------------------------------------------------------------------
1 | package features.migrations;
2 |
3 | import static joist.migrations.MigrationKeywords.createTable;
4 | import static joist.migrations.MigrationKeywords.date;
5 | import static joist.migrations.MigrationKeywords.integer;
6 | import static joist.migrations.MigrationKeywords.primaryKey;
7 | import static joist.migrations.MigrationKeywords.varchar;
8 | import joist.migrations.AbstractMigration;
9 |
10 | public class m0008 extends AbstractMigration {
11 |
12 | public m0008() {
13 | super("User types with timeandmoney.");
14 | }
15 |
16 | public void apply() {
17 | createTable("user_types_a_foo", primaryKey("id"), varchar("name"), date("created"), integer("version"));
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/features/src/migrations/java/features/migrations/m0009.java:
--------------------------------------------------------------------------------
1 | package features.migrations;
2 |
3 | import static joist.migrations.MigrationKeywords.createTable;
4 | import static joist.migrations.MigrationKeywords.integer;
5 | import static joist.migrations.MigrationKeywords.primaryKey;
6 | import static joist.migrations.MigrationKeywords.varchar;
7 | import joist.migrations.AbstractMigration;
8 |
9 | public class m0009 extends AbstractMigration {
10 |
11 | public m0009() {
12 | super("ValidationA.");
13 | }
14 |
15 | public void apply() {
16 | createTable("validation_a_foo", primaryKey("id"), varchar("name"), integer("version"));
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/features/src/migrations/java/features/migrations/m0015.java:
--------------------------------------------------------------------------------
1 | package features.migrations;
2 |
3 | import static joist.migrations.MigrationKeywords.createEntityTable;
4 | import static joist.migrations.MigrationKeywords.createSubclassTable;
5 | import static joist.migrations.MigrationKeywords.varchar;
6 | import joist.migrations.AbstractMigration;
7 |
8 | public class m0015 extends AbstractMigration {
9 |
10 | public m0015() {
11 | super("InheritanceC.");
12 | }
13 |
14 | public void apply() {
15 | createEntityTable("inheritance_c", varchar("name"));
16 | createSubclassTable("inheritance_c", "inheritance_c_foo1", varchar("foo"));
17 | createSubclassTable("inheritance_c", "inheritance_c_foo2", varchar("foo"));
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/features/src/migrations/java/features/migrations/m0018.java:
--------------------------------------------------------------------------------
1 | package features.migrations;
2 |
3 | import static joist.migrations.MigrationKeywords.createEntityTable;
4 | import static joist.migrations.MigrationKeywords.foreignKey;
5 | import static joist.migrations.MigrationKeywords.varchar;
6 | import joist.migrations.AbstractMigration;
7 |
8 | public class m0018 extends AbstractMigration {
9 |
10 | public m0018() {
11 | super("Self referencing ParentE.");
12 | }
13 |
14 | public void apply() {
15 | createEntityTable("parent_e", foreignKey("parent_e").nullable(), varchar("name"));
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/features/src/migrations/java/features/migrations/m0020.java:
--------------------------------------------------------------------------------
1 | package features.migrations;
2 |
3 | import static joist.migrations.MigrationKeywords.addNotNull;
4 | import static joist.migrations.MigrationKeywords.dropColumn;
5 | import static joist.migrations.MigrationKeywords.dropNotNull;
6 | import static joist.migrations.MigrationKeywords.dropUniqueConstraint;
7 | import joist.migrations.AbstractMigration;
8 |
9 | public class m0020 extends AbstractMigration {
10 |
11 | public m0020() {
12 | super("dropNotNull/addNotNull part 2.");
13 | }
14 |
15 | public void apply() {
16 | dropNotNull("values_a", "i");
17 | dropNotNull("values_a", "a");
18 | addNotNull("values_a", "j");
19 | addNotNull("values_a", "b");
20 | dropUniqueConstraint("values_a", "name");
21 | dropColumn("values_a", "primitives_id");
22 | dropColumn("values_a", "description");
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/features/src/migrations/java/features/migrations/m0021.java:
--------------------------------------------------------------------------------
1 | package features.migrations;
2 |
3 | import static joist.migrations.MigrationKeywords.addUniqueConstraint;
4 | import joist.migrations.AbstractMigration;
5 |
6 | public class m0021 extends AbstractMigration {
7 |
8 | public m0021() {
9 | super("dropNotNull/addNotNull part 3.");
10 | }
11 |
12 | public void apply() {
13 | addUniqueConstraint("values_a", "name");
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/migrations/java/features/migrations/m0022.java:
--------------------------------------------------------------------------------
1 | package features.migrations;
2 |
3 | import static joist.migrations.MigrationKeywords.createEntityTable;
4 | import static joist.migrations.MigrationKeywords.datetime;
5 | import static joist.migrations.MigrationKeywords.varchar;
6 | import joist.migrations.AbstractMigration;
7 |
8 | public class m0022 extends AbstractMigration {
9 |
10 | public m0022() {
11 | super("Nullable datetime column.");
12 | }
13 |
14 | public void apply() {
15 | createEntityTable("values_b", varchar("name"), datetime("start").nullable());
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/features/src/migrations/java/features/migrations/m0023.java:
--------------------------------------------------------------------------------
1 | package features.migrations;
2 |
3 | import static joist.migrations.MigrationKeywords.renameColumn;
4 | import joist.migrations.AbstractMigration;
5 |
6 | public class m0023 extends AbstractMigration {
7 |
8 | public m0023() {
9 | super("Rename column.");
10 | }
11 |
12 | public void apply() {
13 | renameColumn("parent", "name", "name_2");
14 | renameColumn("parent", "name_2", "name");
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/migrations/java/features/migrations/m0024.java:
--------------------------------------------------------------------------------
1 | package features.migrations;
2 |
3 | import static joist.migrations.MigrationKeywords.changeOwner;
4 | import joist.migrations.AbstractMigration;
5 | import joist.migrations.columns.ForeignKeyColumn.Owner;
6 |
7 | public class m0024 extends AbstractMigration {
8 |
9 | public m0024() {
10 | super("Change owner.");
11 | }
12 |
13 | public void apply() {
14 | changeOwner("child", "parent_id", Owner.IsMe);
15 | changeOwner("child", "parent_id", Owner.IsThem);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/features/src/migrations/java/features/migrations/m0025.java:
--------------------------------------------------------------------------------
1 | package features.migrations;
2 |
3 | import static joist.migrations.MigrationKeywords.createEntityTable;
4 | import static joist.migrations.MigrationKeywords.foreignKey;
5 | import static joist.migrations.MigrationKeywords.varchar;
6 | import joist.migrations.AbstractMigration;
7 |
8 | public class m0025 extends AbstractMigration {
9 |
10 | public m0025() {
11 | super("Table with foreign key that uses ownerIsMe.");
12 | }
13 |
14 | public void apply() {
15 | createEntityTable("child_f", varchar("name"));
16 | createEntityTable("parent_f", //
17 | foreignKey("child_one_id", "child_f", "id").ownerIsMe(),
18 | foreignKey("child_two_id", "child_f", "id").ownerIsMe().nullable(),
19 | varchar("name"));
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/features/src/migrations/java/features/migrations/m0026.java:
--------------------------------------------------------------------------------
1 | package features.migrations;
2 |
3 | import static joist.migrations.MigrationKeywords.createEntityTable;
4 | import static joist.migrations.MigrationKeywords.foreignKey;
5 | import static joist.migrations.MigrationKeywords.varchar;
6 | import joist.migrations.AbstractMigration;
7 |
8 | public class m0026 extends AbstractMigration {
9 |
10 | public m0026() {
11 | super("Table with one-to-one foreign key that uses ownerIsThem.");
12 | }
13 |
14 | public void apply() {
15 | createEntityTable("parent_g", varchar("name"));
16 | createEntityTable("child_g",//
17 | foreignKey("parent_one_id", "parent_g").ownerIsThem().unique(),
18 | foreignKey("parent_two_id", "parent_g").ownerIsThem().nullable().unique(),
19 | varchar("name"));
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/features/src/migrations/java/features/migrations/m0027.java:
--------------------------------------------------------------------------------
1 | package features.migrations;
2 |
3 | import static joist.migrations.MigrationKeywords.bigint;
4 | import static joist.migrations.MigrationKeywords.createEntityTable;
5 | import static joist.migrations.MigrationKeywords.foreignKey;
6 | import static joist.migrations.MigrationKeywords.varchar;
7 | import joist.migrations.AbstractMigration;
8 |
9 | public class m0027 extends AbstractMigration {
10 |
11 | public m0027() {
12 | super("Parent with threshold and children with quantity. Interesting query is for children with sum(quantity) over threshold");
13 | }
14 |
15 | public void apply() {
16 | createEntityTable("parent_h", varchar("name"), bigint("threshold"));
17 | createEntityTable("child_h",//
18 | foreignKey("parent_id", "parent_h").ownerIsThem(),
19 | varchar("name"),
20 | bigint("quantity"));
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/features/src/migrations/java/features/migrations/m0028.java:
--------------------------------------------------------------------------------
1 | package features.migrations;
2 |
3 | import static joist.migrations.MigrationKeywords.createEntityTable;
4 | import static joist.migrations.MigrationKeywords.foreignKey;
5 | import joist.migrations.AbstractMigration;
6 |
7 | public class m0028 extends AbstractMigration {
8 |
9 | public m0028() {
10 | super("Parent with custom one-to-many names.");
11 | }
12 |
13 | public void apply() {
14 | createEntityTable("parent_i");
15 | createEntityTable("child_i_a", foreignKey("parent_id", "parent_i").ownerIsThem());
16 | createEntityTable("child_i_b", foreignKey("parent_id", "parent_i").ownerIsThem().unique());
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/features/src/migrations/java/features/migrations/m0029.java:
--------------------------------------------------------------------------------
1 | package features.migrations;
2 |
3 | import static joist.migrations.MigrationKeywords.createEntityTable;
4 | import static joist.migrations.MigrationKeywords.foreignKey;
5 | import static joist.migrations.MigrationKeywords.varchar;
6 | import joist.migrations.AbstractMigration;
7 |
8 | public class m0029 extends AbstractMigration {
9 |
10 | public m0029() {
11 | super("Add a child entity of an sub entity.");
12 | }
13 |
14 | public void apply() {
15 | createEntityTable("inheritance_a_sub_one_child", varchar("name"), foreignKey("sub_id", "inheritance_a_sub_one"));
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/features/src/migrations/java/features/migrations/m0030.java:
--------------------------------------------------------------------------------
1 | package features.migrations;
2 |
3 | import static joist.migrations.MigrationKeywords.addCode;
4 | import static joist.migrations.MigrationKeywords.removeCode;
5 | import joist.migrations.AbstractMigration;
6 |
7 | public class m0030 extends AbstractMigration {
8 |
9 | public m0030() {
10 | super("Remove code.");
11 | }
12 |
13 | public void apply() {
14 | addCode("code_a_size", "THREE", "Three");
15 | removeCode("code_a_size", "THREE");
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/features/src/migrations/resources/log4j.properties:
--------------------------------------------------------------------------------
1 |
2 | log4j.rootLogger=INFO, console
3 |
4 | log4j.appender.console=org.apache.log4j.ConsoleAppender
5 | log4j.appender.console.layout=org.apache.log4j.PatternLayout
6 | log4j.appender.console.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
7 |
8 | log4j.logger.joist = FINE
9 |
--------------------------------------------------------------------------------
/features/src/test/java/features/domain/AliasRegistryTest.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | import org.junit.Test;
4 |
5 | public class AliasRegistryTest extends AbstractFeaturesTest {
6 |
7 | @Test
8 | public void testDoesNotBlowUpOnSubClass() {
9 | new Parent() {
10 | {
11 | this.setName("a");
12 | }
13 | };
14 | this.commitAndReOpen();
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/features/src/test/java/features/domain/BatchingTest.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | import joist.domain.uow.UoW;
4 |
5 | import org.junit.Test;
6 |
7 | public class BatchingTest extends AbstractFeaturesTest {
8 |
9 | @Test
10 | public void testNoop() {
11 | }
12 |
13 | @Test
14 | public void testBatch() {
15 | int number = 0; // change when testing batching
16 |
17 | Parent[] ps = new Parent[number];
18 | for (int i = 0; i < number; i++) {
19 | ps[i] = new Parent("parent" + i);
20 | }
21 | UoW.commit();
22 |
23 | for (int i = 0; i < number; i++) {
24 | ps[i].setName("Parent" + i);
25 | }
26 | UoW.commit();
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/features/src/test/java/features/domain/DateTimeTest.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | import static features.domain.builders.Builders.aValuesB;
4 | import static features.domain.builders.Builders.theValuesB;
5 | import static org.hamcrest.CoreMatchers.is;
6 | import static org.hamcrest.CoreMatchers.nullValue;
7 | import static org.junit.Assert.assertThat;
8 |
9 | import org.junit.Test;
10 |
11 | public class DateTimeTest extends AbstractFeaturesTest {
12 |
13 | @Test
14 | public void testNullDatetime() {
15 | aValuesB().name("foo");
16 | this.commitAndReOpen();
17 | assertThat(theValuesB(1).start(), is(nullValue()));
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/features/src/test/java/features/domain/DomainObjectTest.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | import static org.hamcrest.CoreMatchers.is;
4 | import static org.junit.Assert.assertThat;
5 | import static org.junit.Assert.fail;
6 |
7 | import org.junit.Test;
8 |
9 | public class DomainObjectTest extends AbstractFeaturesTest {
10 |
11 | @Test
12 | public void testIdCannotChange() {
13 | Parent p = new Parent("parent");
14 | this.commitAndReOpen();
15 | p = this.reload(p);
16 | try {
17 | p.setId(10l);
18 | fail();
19 | } catch (IllegalStateException ise) {
20 | assertThat(ise.getMessage(), is("Parent[1] id cannot be changed"));
21 | }
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/features/src/test/java/features/domain/OuterJoinFetchingTest.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | import java.util.List;
4 |
5 | import joist.domain.uow.UoW;
6 |
7 | import org.junit.Assert;
8 | import org.junit.Test;
9 |
10 | public class OuterJoinFetchingTest extends AbstractFeaturesTest {
11 |
12 | @Test
13 | public void testWithoutFetching() {
14 | Parent p = new Parent("parent");
15 | new Child(p, "child1");
16 | this.commitAndReOpen();
17 |
18 | List l = Parent.queries.findWithoutChildFetch();
19 | Assert.assertEquals(1, l.size());
20 | Assert.assertEquals(1, UoW.getIdentityMap().size());
21 | }
22 |
23 | // no outer join fetching is implemented yet
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/features/src/test/java/features/domain/ParentCTest.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | import org.junit.Assert;
4 | import org.junit.Test;
5 |
6 | public class ParentCTest extends AbstractFeaturesTest {
7 |
8 | @Test
9 | public void testTwoParents() {
10 | ParentCBar bar = new ParentCBar();
11 | bar.setName("bar");
12 | bar.setFirstParent(new ParentCFoo("foo1"));
13 | bar.setSecondParent(new ParentCFoo("foo2"));
14 | this.commitAndReOpen();
15 |
16 | bar = this.reload(bar);
17 | Assert.assertEquals("foo1", bar.getFirstParent().getName());
18 | Assert.assertEquals("foo2", bar.getSecondParent().getName());
19 | Assert.assertEquals(bar, bar.getFirstParent().getFirstParentParentCBars().get(0));
20 | Assert.assertEquals(bar, bar.getSecondParent().getSecondParentParentCBars().get(0));
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/features/src/test/java/features/domain/ParentHTest.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | import org.junit.Test;
4 |
5 | public class ParentHTest {
6 |
7 | @Test
8 | public void testNameOfTheOneToManyProperty() {
9 | ParentH p = new ParentH();
10 | // child has a column called "parent_id" instead of "parent_h_id", so before a tweak
11 | // to codegen, this was coming out as p.getParentChildHs() when really it can just
12 | // be getChildHs() without the "Parent" prefix.
13 | p.getChildHs();
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/features/src/test/java/features/domain/PrimitivesBAggregatesTest.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | import static features.domain.builders.Builders.aPrimitivesB;
4 | import static org.hamcrest.CoreMatchers.is;
5 | import static org.junit.Assert.assertThat;
6 |
7 | import org.junit.Test;
8 |
9 | public class PrimitivesBAggregatesTest extends AbstractFeaturesTest {
10 |
11 | @Test
12 | public void testSumSmallInt() {
13 | aPrimitivesB().small1((short) 10).defaults();
14 | this.commitAndReOpen();
15 | assertThat(PrimitivesB.queries.sumShort(), is((short) 10));
16 | }
17 |
18 | @Test
19 | public void testCountSmallInt() {
20 | aPrimitivesB().small1((short) 10).defaults();
21 | this.commitAndReOpen();
22 | assertThat(PrimitivesB.queries.countShort(), is(1L));
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/features/src/test/java/features/domain/PrimitivesRegexRuleTest.java:
--------------------------------------------------------------------------------
1 | package features.domain;
2 |
3 | import joist.domain.ValidationAssert;
4 | import joist.domain.validation.rules.RegexRule;
5 |
6 | import org.junit.Test;
7 |
8 | public class PrimitivesRegexRuleTest extends AbstractFeaturesTest {
9 |
10 | @Test
11 | public void testDoesNotMatches() {
12 | Primitives p = new Primitives("p");
13 | p.addRule(new RegexRule("name", "pp", PrimitivesCodegen.Shims.name));
14 | ValidationAssert.assertErrors(p, "Name is invalid");
15 | }
16 |
17 | @Test
18 | public void testMatches() {
19 | Primitives p = new Primitives("pop");
20 | p.addRule(new RegexRule("name", "p.p", PrimitivesCodegen.Shims.name));
21 | ValidationAssert.assertValid(p);
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/features/src/test/java/log4j-test.properties:
--------------------------------------------------------------------------------
1 | log4j.rootCategory=INFO, S
2 |
3 | log4j.appender.S = org.apache.log4j.ConsoleAppender
4 | log4j.appender.S.layout = org.apache.log4j.PatternLayout
5 | log4j.appender.S.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %-30c{1} [%-5p] %m%n
6 |
7 | log4j.logger.joist = TRACE
8 |
9 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stephenh/joist-java/41dda3478a6a163d914a49191fbe4cb6d28c54e4/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sat Sep 08 19:00:52 CDT 2018
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-all.zip
7 |
--------------------------------------------------------------------------------
/migrations/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs:
--------------------------------------------------------------------------------
1 | #org.springsource.ide.eclipse.gradle.core.preferences.GradleProjectPreferences
2 | #Tue Oct 28 21:19:08 CDT 2014
3 | org.springsource.ide.eclipse.gradle.linkedresources=
4 | org.springsource.ide.eclipse.gradle.rootprojectloc=..
5 |
--------------------------------------------------------------------------------
/migrations/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | #Wed Apr 12 11:46:23 CDT 2006
2 | eclipse.preferences.version=1
3 | encoding/=UTF-8
4 |
--------------------------------------------------------------------------------
/migrations/.settings/org.eclipse.core.runtime.prefs:
--------------------------------------------------------------------------------
1 | #Sun Jan 09 16:04:56 CST 2011
2 | eclipse.preferences.version=1
3 | instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
4 | line.separator=\n
5 |
--------------------------------------------------------------------------------
/migrations/.settings/org.moreunit.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.moreunit.preferences.version=2
3 | org.moreunit.test_type=junit4
4 | org.moreunit.unitsourcefolder=joist-migrations\:src/main/java\:joist-migrations\:src/main/test
5 | org.moreunit.useprojectsettings=true
6 |
--------------------------------------------------------------------------------
/migrations/build.gradle:
--------------------------------------------------------------------------------
1 |
2 | dependencies {
3 | compile project(':domain')
4 |
5 | testCompile 'junit:junit:4.12'
6 | }
7 |
8 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/codegen/InformationSchemaColumn.java:
--------------------------------------------------------------------------------
1 | package joist.codegen;
2 |
3 | public class InformationSchemaColumn implements Comparable {
4 |
5 | public String name;
6 | public String tableName;
7 | public String dataType;
8 | public int maximumLength;
9 | public boolean nullable;
10 | public String defaultValue;
11 | public boolean primaryKey;
12 | public boolean unique;
13 | public String foreignKeyConstraintName;
14 | public String foreignKeyTableName;
15 | public String foreignKeyColumnName;
16 |
17 | public int compareTo(InformationSchemaColumn other) {
18 | return this.toString().compareTo(other.toString());
19 | }
20 |
21 | public String toString() {
22 | return this.tableName + "." + this.name;
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/codegen/MarkedList.java:
--------------------------------------------------------------------------------
1 | package joist.codegen;
2 |
3 | import java.util.ArrayList;
4 | import java.util.List;
5 |
6 | /**
7 | * Keeps track of what values have been checked via {@code get} calls.
8 | *
9 | * Primarily used to detect out-of-date config settings.
10 | */
11 | public class MarkedList extends ArrayList {
12 |
13 | private static final long serialVersionUID = 1L;
14 | private final List checked = new ArrayList();
15 |
16 | @Override
17 | @SuppressWarnings("unchecked")
18 | public boolean contains(Object object) {
19 | this.checked.add((T) object);
20 | return super.contains(object);
21 | }
22 |
23 | public List getStaleValues() {
24 | List copy = new ArrayList(this);
25 | copy.removeAll(this.checked);
26 | return copy;
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/codegen/dtos/CodeEntity.java:
--------------------------------------------------------------------------------
1 | package joist.codegen.dtos;
2 |
3 | import java.util.ArrayList;
4 | import java.util.List;
5 |
6 | import joist.codegen.Config;
7 |
8 | /** Represents tables that generated as enums but are still foreign keys in the database. */
9 | public class CodeEntity extends Entity {
10 |
11 | private List codes = new ArrayList();
12 |
13 | public CodeEntity(Config config, String tableName) {
14 | super(config, tableName);
15 | }
16 |
17 | @Override
18 | public boolean isCodeEntity() {
19 | return true;
20 | }
21 |
22 | public void addCode(String id, String code, String name) {
23 | this.codes.add(new CodeValue(id, code, name));
24 | }
25 |
26 | public List getCodes() {
27 | return this.codes;
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/codegen/dtos/CodeValue.java:
--------------------------------------------------------------------------------
1 | package joist.codegen.dtos;
2 |
3 | import joist.util.Inflector;
4 |
5 | public class CodeValue {
6 |
7 | public String id;
8 | public String code;
9 | public String name;
10 |
11 | public CodeValue(String id, String code, String name) {
12 | this.id = id;
13 | this.code = code;
14 | this.name = name;
15 | }
16 |
17 | public String getNameCamelCased() {
18 | return Inflector.capitalize(Inflector.camelize(this.code.toLowerCase()));
19 | }
20 |
21 | public String getEnumName() {
22 | if (this.code.matches("^[0-9].*")) {
23 | return "_" + this.code;
24 | }
25 | return this.code;
26 | }
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/codegen/passes/GenerateDomainClassIfNotExistsPass.java:
--------------------------------------------------------------------------------
1 | package joist.codegen.passes;
2 |
3 | import joist.codegen.Codegen;
4 | import joist.codegen.dtos.Entity;
5 | import joist.sourcegen.GClass;
6 |
7 | public class GenerateDomainClassIfNotExistsPass implements Pass {
8 |
9 | public void pass(Codegen codegen) {
10 | for (Entity entity : codegen.getSchema().getEntities().values()) {
11 | if (entity.isCodeEntity()) {
12 | continue;
13 | }
14 | if (!codegen.getOutputSourceDirectory().exists(entity.getFullClassName())) {
15 | GClass domain = codegen.getOutputSourceDirectory().getClass(entity.getFullClassName());
16 | domain.baseClassName(entity.getFullCodegenClassName());
17 | } else {
18 | codegen.getOutputSourceDirectory().markTouched(entity.getFullClassName());
19 | }
20 | }
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/codegen/passes/GenerateQueriesIfNotExistsPass.java:
--------------------------------------------------------------------------------
1 | package joist.codegen.passes;
2 |
3 | import joist.codegen.Codegen;
4 | import joist.codegen.dtos.Entity;
5 | import joist.sourcegen.GClass;
6 |
7 | public class GenerateQueriesIfNotExistsPass implements Pass {
8 |
9 | public void pass(Codegen codegen) {
10 | for (Entity entity : codegen.getSchema().getEntities().values()) {
11 | if (entity.isCodeEntity()) {
12 | continue;
13 | }
14 | if (!codegen.getOutputSourceDirectory().exists(entity.getFullQueriesClassName())) {
15 | GClass queries = codegen.getOutputSourceDirectory().getClass(entity.getFullQueriesClassName());
16 | queries.baseClassName(entity.getFullQueriesCodegenClassName());
17 | } else {
18 | codegen.getOutputSourceDirectory().markTouched(entity.getFullQueriesClassName());
19 | }
20 | }
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/codegen/passes/GenerateSchemaHash.java:
--------------------------------------------------------------------------------
1 | package joist.codegen.passes;
2 |
3 | import joist.codegen.Codegen;
4 | import joist.sourcegen.GClass;
5 | import joist.sourcegen.GField;
6 |
7 | public class GenerateSchemaHash implements Pass {
8 |
9 | public void pass(Codegen codegen) {
10 | GClass schemaHash = codegen.getOutputCodegenDirectory().getClass(codegen.getConfig().getDomainObjectPackage() + ".SchemaHash");
11 | GField field = schemaHash.getField("hashCode").setPublic().setStatic().setFinal().type("int");
12 | field.initialValue("{}", codegen.getSchema().getSchemaHashCode());
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/codegen/passes/Pass.java:
--------------------------------------------------------------------------------
1 | package joist.codegen.passes;
2 |
3 | public interface Pass {
4 |
5 | void pass(T parameter);
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/migrations/AbstractMigration.java:
--------------------------------------------------------------------------------
1 | package joist.migrations;
2 |
3 | import java.sql.SQLException;
4 |
5 | /** A base class with nice helper methods for updates to extend. */
6 | public abstract class AbstractMigration implements Migration {
7 |
8 | private String description;
9 |
10 | protected AbstractMigration(String description) {
11 | this.description = description;
12 | }
13 |
14 | public String toString() {
15 | return this.description;
16 | }
17 |
18 | public abstract void apply() throws SQLException;
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/migrations/Migration.java:
--------------------------------------------------------------------------------
1 | package joist.migrations;
2 |
3 | import java.sql.SQLException;
4 |
5 | public interface Migration {
6 |
7 | void apply() throws SQLException;
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/migrations/columns/BigIntColumn.java:
--------------------------------------------------------------------------------
1 | package joist.migrations.columns;
2 |
3 | public class BigIntColumn extends AbstractColumn {
4 |
5 | public BigIntColumn(String name) {
6 | super(name, "bigint");
7 | }
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/migrations/columns/BooleanColumn.java:
--------------------------------------------------------------------------------
1 | package joist.migrations.columns;
2 |
3 | import joist.migrations.MigrationKeywords;
4 |
5 | public class BooleanColumn extends AbstractColumn {
6 |
7 | public BooleanColumn(String name) {
8 | super(name, MigrationKeywords.isMySQL() ? "bit" : "boolean");
9 | }
10 |
11 | public BooleanColumn defaultTrue() {
12 | return this.defaultValue(MigrationKeywords.isMySQL() ? "1" : "true");
13 | }
14 |
15 | public BooleanColumn defaultFalse() {
16 | return this.defaultValue(MigrationKeywords.isMySQL() ? "0" : "false");
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/migrations/columns/ByteaColumn.java:
--------------------------------------------------------------------------------
1 | package joist.migrations.columns;
2 |
3 | public class ByteaColumn extends AbstractColumn {
4 |
5 | public ByteaColumn(String name) {
6 | super(name, "bytea");
7 | }
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/migrations/columns/CharColumn.java:
--------------------------------------------------------------------------------
1 | package joist.migrations.columns;
2 |
3 | public class CharColumn extends AbstractColumn {
4 |
5 | private Integer length;
6 |
7 | public CharColumn(String name, Integer length) {
8 | super(name, "char");
9 | this.length = length;
10 | }
11 |
12 | public String toSql() {
13 | if (this.length != null) {
14 | return this.getQuotedName() + " char(" + this.length + ")";
15 | } else {
16 | return super.toSql();
17 | }
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/migrations/columns/Column.java:
--------------------------------------------------------------------------------
1 | package joist.migrations.columns;
2 |
3 | import java.util.List;
4 |
5 | public interface Column {
6 |
7 | boolean isNullable();
8 |
9 | boolean hasDefault();
10 |
11 | String getName();
12 |
13 | void setTableName(String tableName);
14 |
15 | String toSql();
16 |
17 | List postInjectCommands();
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/migrations/columns/ConstraintNamer.java:
--------------------------------------------------------------------------------
1 | package joist.migrations.columns;
2 |
3 | import joist.migrations.columns.ForeignKeyColumn.Owner;
4 |
5 | /**
6 | * Abstraction for naming constraints.
7 | *
8 | * This is actually tricky as, due to length requirements, sometimes
9 | * you can't just concatenate together table + column names.
10 | */
11 | interface ConstraintNamer {
12 |
13 | String name(Owner owner);
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/migrations/columns/DateColumn.java:
--------------------------------------------------------------------------------
1 | package joist.migrations.columns;
2 |
3 | /** Store YYYY-MM-DD. */
4 | public class DateColumn extends AbstractColumn {
5 |
6 | public DateColumn(String name) {
7 | super(name, "date");
8 | }
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/migrations/columns/DatetimeColumn.java:
--------------------------------------------------------------------------------
1 | package joist.migrations.columns;
2 |
3 | import joist.migrations.MigrationKeywords;
4 |
5 | public class DatetimeColumn extends AbstractColumn {
6 |
7 | public DatetimeColumn(String name) {
8 | super(name, MigrationKeywords.isMySQL() ? "datetime" : "timestamp");
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/migrations/columns/HackyConstraintNamer.java:
--------------------------------------------------------------------------------
1 | package joist.migrations.columns;
2 |
3 | import joist.migrations.columns.ForeignKeyColumn.Owner;
4 | import joist.util.Interpolate;
5 |
6 | class HackyConstraintNamer implements ConstraintNamer {
7 |
8 | // We need something short (64 char max constraint names), different, and
9 | // that will change each time we apply a new column. nanos might also work.
10 | private long hackyNextId = System.currentTimeMillis();
11 |
12 | @Override
13 | public String name(Owner owner) {
14 | return Interpolate.string("c_{}_{}_fk", this.hackyNextId++, owner.toString().toLowerCase());
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/migrations/columns/IntColumn.java:
--------------------------------------------------------------------------------
1 | package joist.migrations.columns;
2 |
3 | public class IntColumn extends AbstractColumn {
4 |
5 | public IntColumn(String name) {
6 | super(name, "int");
7 | }
8 |
9 | public IntColumn defaultValue(int value) {
10 | return super.defaultValue(Integer.toString(value));
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/migrations/columns/MoneyColumn.java:
--------------------------------------------------------------------------------
1 | package joist.migrations.columns;
2 |
3 | public class MoneyColumn extends AbstractColumn {
4 |
5 | public MoneyColumn(String name) {
6 | super(name, "int");
7 | }
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/migrations/columns/SmallIntColumn.java:
--------------------------------------------------------------------------------
1 | package joist.migrations.columns;
2 |
3 | public class SmallIntColumn extends AbstractColumn {
4 |
5 | public SmallIntColumn(String name) {
6 | super(name, "smallint");
7 | }
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/migrations/columns/TextColumn.java:
--------------------------------------------------------------------------------
1 | package joist.migrations.columns;
2 |
3 | public class TextColumn extends AbstractColumn {
4 |
5 | public TextColumn(String name) {
6 | super(name, "text");
7 | }
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/migrations/columns/VarcharColumn.java:
--------------------------------------------------------------------------------
1 | package joist.migrations.columns;
2 |
3 | public class VarcharColumn extends AbstractColumn {
4 |
5 | private int length;
6 |
7 | public VarcharColumn(String name) {
8 | super(name, "varchar");
9 | this.length = 100;
10 | }
11 |
12 | public VarcharColumn length(int length) {
13 | this.length = length;
14 | return this;
15 | }
16 |
17 | @Override
18 | public VarcharColumn defaultValue(String defaultValue) {
19 | return super.defaultValue("'" + defaultValue + "'");
20 | }
21 |
22 | @Override
23 | public String getDataType() {
24 | return super.getDataType() + "(" + this.length + ")";
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/migrations/fill/ConstantFillInStrategy.java:
--------------------------------------------------------------------------------
1 | package joist.migrations.fill;
2 |
3 | import java.sql.Connection;
4 | import java.sql.SQLException;
5 |
6 | import joist.jdbc.Jdbc;
7 | import joist.util.Wrap;
8 |
9 | public class ConstantFillInStrategy implements FillInStrategy {
10 |
11 | private String fragment;
12 |
13 | public ConstantFillInStrategy(String fragment) {
14 | this.fragment = fragment;
15 | }
16 |
17 | public ConstantFillInStrategy(int i) {
18 | this.fragment = String.valueOf(i);
19 | }
20 |
21 | public void fillIn(Connection connection, String tableName, String columnName) throws SQLException {
22 | Jdbc.update(//
23 | connection,
24 | "UPDATE " + Wrap.backquotes(tableName) + " SET " + columnName + " = " + this.fragment);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/migrations/src/main/java/joist/migrations/fill/FillInStrategy.java:
--------------------------------------------------------------------------------
1 | package joist.migrations.fill;
2 |
3 | import java.sql.Connection;
4 | import java.sql.SQLException;
5 |
6 | public interface FillInStrategy {
7 |
8 | void fillIn(Connection connection, String tableName, String columnName) throws SQLException;
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/migrations/src/main/test/joist/migrations/columns/PrimaryKeyColumnTest.java:
--------------------------------------------------------------------------------
1 | package joist.migrations.columns;
2 |
3 | import static org.junit.Assert.assertEquals;
4 | import joist.codegen.Config;
5 | import joist.domain.orm.Db;
6 | import joist.migrations.MigrationKeywords;
7 |
8 | import org.junit.After;
9 | import org.junit.Before;
10 | import org.junit.Test;
11 |
12 | public class PrimaryKeyColumnTest {
13 |
14 | @Before
15 | public void setupDb() {
16 | MigrationKeywords.config = new Config("foo", "foo", Db.MYSQL);
17 | }
18 |
19 | @After
20 | public void restoreInt() {
21 | PrimaryKeyColumn.keyColumnType = "int";
22 | }
23 |
24 | @Test
25 | public void unsignedColumnType() {
26 | PrimaryKeyColumn.keyColumnType = "int unsigned";
27 | PrimaryKeyColumn p = new PrimaryKeyColumn("id");
28 | assertEquals("\"id\" int unsigned AUTO_INCREMENT PRIMARY KEY", p.toSql());
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/migrations/src/main/test/joist/migrations/columns/StubConstraintNamer.java:
--------------------------------------------------------------------------------
1 | package joist.migrations.columns;
2 |
3 | import joist.migrations.columns.ForeignKeyColumn.Owner;
4 | import joist.util.Interpolate;
5 |
6 | class StubConstraintNamer implements ConstraintNamer {
7 |
8 | // Like the production one, but we want determinism so always start at 0
9 | private long nextId = 0;
10 |
11 | @Override
12 | public String name(Owner owner) {
13 | return Interpolate.string("c_{}_{}_fk", this.nextId++, owner.toString().toLowerCase());
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/perf/.settings/org.apache.ivyde.eclipse.prefs:
--------------------------------------------------------------------------------
1 | #Sun Oct 10 16:31:14 MDT 2010
2 | eclipse.preferences.version=1
3 | org.apache.ivyde.eclipse.standlaoneretrieve=
4 |
--------------------------------------------------------------------------------
/perf/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | #Wed Apr 12 11:46:23 CDT 2006
2 | eclipse.preferences.version=1
3 | encoding/=UTF-8
4 |
--------------------------------------------------------------------------------
/perf/.settings/org.eclipse.core.runtime.prefs:
--------------------------------------------------------------------------------
1 | #Sun Jan 09 16:04:59 CST 2011
2 | eclipse.preferences.version=1
3 | line.separator=\n
4 |
--------------------------------------------------------------------------------
/perf/src/main/java/joist/perf/hibernate/GrandChild.java:
--------------------------------------------------------------------------------
1 | package joist.perf.hibernate;
2 |
3 | public class GrandChild {
4 |
5 | private Integer id;
6 | private String name;
7 | private Child child;
8 | private Integer version;
9 |
10 | public Integer getId() {
11 | return this.id;
12 | }
13 |
14 | public void setId(Integer id) {
15 | this.id = id;
16 | }
17 |
18 | public String getName() {
19 | return this.name;
20 | }
21 |
22 | public void setName(String name) {
23 | this.name = name;
24 | }
25 |
26 | public Integer getVersion() {
27 | return this.version;
28 | }
29 |
30 | public void setVersion(Integer version) {
31 | this.version = version;
32 | }
33 |
34 | public Child getChild() {
35 | return this.child;
36 | }
37 |
38 | public void setChild(Child child) {
39 | this.child = child;
40 | }
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/perf/src/main/java/log4j.properties:
--------------------------------------------------------------------------------
1 |
2 | log4j.rootCategory=INFO, S
3 | log4j.appender.S = org.apache.log4j.ConsoleAppender
4 | log4j.appender.S.layout = org.apache.log4j.PatternLayout
5 | log4j.appender.S.layout.ConversionPattern = [%p] %d{HH:mm:ss} %c{1} %m%n
6 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 |
2 | include 'util'
3 | include 'domain'
4 | include 'domain-testing'
5 |
6 | // Jitpack doesn't support db tests, but we run those in travis
7 | if (System.env.JITPACK != 'true') {
8 | include 'migrations'
9 | include 'features'
10 | }
11 | // include 'starter'
12 |
13 |
--------------------------------------------------------------------------------
/starter/.gitignore:
--------------------------------------------------------------------------------
1 | codegen
2 |
--------------------------------------------------------------------------------
/starter/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs:
--------------------------------------------------------------------------------
1 | #org.springsource.ide.eclipse.gradle.core.preferences.GradleProjectPreferences
2 | #Tue Oct 28 21:19:13 CDT 2014
3 | org.springsource.ide.eclipse.gradle.linkedresources=
4 | org.springsource.ide.eclipse.gradle.rootprojectloc=..
5 |
--------------------------------------------------------------------------------
/starter/.settings/org.eclipse.jdt.ui.prefs:
--------------------------------------------------------------------------------
1 | cleanup_settings_version=2
2 | eclipse.preferences.version=1
3 | formatter_profile=_Joist Coding Standards
4 | formatter_settings_version=12
5 |
--------------------------------------------------------------------------------
/starter/build.gradle:
--------------------------------------------------------------------------------
1 |
2 | sourceSets {
3 | main {
4 | java {
5 | srcDir 'src/codegen/java'
6 | }
7 | }
8 | migrations
9 | }
10 |
11 | dependencies {
12 | compile project(':domain')
13 | compile 'org.slf4j:slf4j-log4j12:1.6.1'
14 |
15 | testCompile project(':domain-testing')
16 | testCompile 'org.postgresql:postgresql:42.2.2'
17 | testCompile 'mysql:mysql-connector-java:8.0.11'
18 |
19 | migrationsCompile project(':migrations')
20 | migrationsCompile 'org.postgresql:postgresql:42.2.2'
21 | migrationsCompile 'mysql:mysql-connector-java:8.0.11'
22 | migrationsCompile 'org.slf4j:slf4j-log4j12:1.6.1'
23 | }
24 |
25 | task cycle(type: JavaExec) {
26 | classpath sourceSets.migrations.runtimeClasspath
27 | main = 'starter.cli.Cli'
28 | args 'JoistCli.cycle'
29 | }
30 | cycle.dependsOn(migrationsClasses)
31 | compileJava.dependsOn(cycle)
32 |
33 |
34 |
--------------------------------------------------------------------------------
/starter/src/main/java/starter/domain/Employee.java:
--------------------------------------------------------------------------------
1 | package starter.domain;
2 |
3 | public class Employee extends EmployeeCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/starter/src/main/java/starter/domain/HistoryEntry.java:
--------------------------------------------------------------------------------
1 | package starter.domain;
2 |
3 | public class HistoryEntry extends HistoryEntryCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/starter/src/main/java/starter/domain/builders/EmployeeBuilder.java:
--------------------------------------------------------------------------------
1 | package starter.domain.builders;
2 |
3 | import starter.domain.Employee;
4 |
5 | public class EmployeeBuilder extends EmployeeBuilderCodegen {
6 |
7 | public EmployeeBuilder(Employee instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/starter/src/main/java/starter/domain/builders/HistoryEntryBuilder.java:
--------------------------------------------------------------------------------
1 | package starter.domain.builders;
2 |
3 | import starter.domain.HistoryEntry;
4 |
5 | public class HistoryEntryBuilder extends HistoryEntryBuilderCodegen {
6 |
7 | public HistoryEntryBuilder(HistoryEntry instance) {
8 | super(instance);
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/starter/src/main/java/starter/domain/queries/EmployeeQueries.java:
--------------------------------------------------------------------------------
1 | package starter.domain.queries;
2 |
3 | public class EmployeeQueries extends EmployeeQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/starter/src/main/java/starter/domain/queries/HistoryEntryQueries.java:
--------------------------------------------------------------------------------
1 | package starter.domain.queries;
2 |
3 | public class HistoryEntryQueries extends HistoryEntryQueriesCodegen {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/starter/src/main/resources/log4j.properties:
--------------------------------------------------------------------------------
1 |
2 | log4j.rootLogger=INFO, console
3 |
4 | log4j.appender.console=org.apache.log4j.ConsoleAppender
5 | log4j.appender.console.layout=org.apache.log4j.PatternLayout
6 | log4j.appender.console.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
7 |
8 |
--------------------------------------------------------------------------------
/starter/src/migrations/java/starter/cli/Cli.java:
--------------------------------------------------------------------------------
1 | package starter.cli;
2 |
3 | import joist.util.Reflection;
4 | import joist.util.SystemProperties;
5 |
6 | import org.apache.commons.lang.StringUtils;
7 |
8 | /** A really simple class to bootstrap from the command line. */
9 | public class Cli {
10 |
11 | /** Passed JoistCli.codegen, JoistCli.fixPermissions, will instantiate JoistCli class and call each method. */
12 | public static void main(String[] args) {
13 | SystemProperties.loadFromFileIfExists("./build.properties");
14 | for (String arg : args) {
15 | String[] parts = StringUtils.split(arg, ".", 2);
16 | Object task = Reflection.newInstance("starter.cli." + parts[0]);
17 | Reflection.invoke(parts[1], task);
18 | }
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/starter/src/migrations/java/starter/cli/JoistCli.java:
--------------------------------------------------------------------------------
1 | package starter.cli;
2 |
3 | import joist.AbstractJoistCli;
4 | import joist.domain.orm.Db;
5 |
6 | public class JoistCli extends AbstractJoistCli {
7 |
8 | public JoistCli() {
9 | // change to Db.PG for postgres
10 | super("starter", Db.MYSQL);
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/starter/src/migrations/resources/log4j.properties:
--------------------------------------------------------------------------------
1 |
2 | log4j.rootLogger=INFO, console
3 |
4 | log4j.appender.console=org.apache.log4j.ConsoleAppender
5 | log4j.appender.console.layout=org.apache.log4j.PatternLayout
6 | log4j.appender.console.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
7 |
8 |
--------------------------------------------------------------------------------
/starter/src/test/java/starter/domain/EmployeeTest.java:
--------------------------------------------------------------------------------
1 | package starter.domain;
2 |
3 | import static starter.domain.builders.Builders.aEmployee;
4 | import joist.domain.FlushTestDatabase;
5 | import joist.domain.orm.Db;
6 | import joist.domain.orm.Repository;
7 | import joist.domain.uow.UoW;
8 |
9 | import org.junit.After;
10 | import org.junit.Before;
11 | import org.junit.Test;
12 |
13 | public class EmployeeTest {
14 |
15 | private static Repository repo = new Repository(Db.MYSQL, "starter");
16 |
17 | @Before
18 | public void before() {
19 | FlushTestDatabase.execute(repo);
20 | UoW.open(repo, null);
21 | }
22 |
23 | @After
24 | public void after() {
25 | UoW.closeIfOpen();
26 | }
27 |
28 | @Test
29 | public void foo() {
30 | aEmployee().name("bob").employeeType(EmployeeType.FTE);
31 | UoW.commitAndReOpen();
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/starter/starter-cycle.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/util/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs:
--------------------------------------------------------------------------------
1 | #org.springsource.ide.eclipse.gradle.core.preferences.GradleProjectPreferences
2 | #Tue Oct 28 21:17:54 CDT 2014
3 | org.springsource.ide.eclipse.gradle.linkedresources=
4 | org.springsource.ide.eclipse.gradle.rootprojectloc=..
5 |
--------------------------------------------------------------------------------
/util/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | #Wed Apr 12 11:46:23 CDT 2006
2 | eclipse.preferences.version=1
3 | encoding/=UTF-8
4 |
--------------------------------------------------------------------------------
/util/.settings/org.eclipse.core.runtime.prefs:
--------------------------------------------------------------------------------
1 | #Sun Jan 09 16:05:02 CST 2011
2 | eclipse.preferences.version=1
3 | instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
4 | line.separator=\n
5 |
--------------------------------------------------------------------------------
/util/.settings/org.moreunit.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.moreunit.preferences.version=2
3 | org.moreunit.test_type=junit4
4 | org.moreunit.unitsourcefolder=joist-util\:src/main/java\:joist-util\:src/test/java
5 | org.moreunit.useprojectsettings=true
6 |
--------------------------------------------------------------------------------
/util/build.gradle:
--------------------------------------------------------------------------------
1 |
2 | dependencies {
3 | compile 'org.slf4j:slf4j-api:1.6.1'
4 |
5 | testCompile 'junit:junit:4.12'
6 | testCompile 'org.slf4j:slf4j-log4j12:1.6.1'
7 | }
8 |
9 |
--------------------------------------------------------------------------------
/util/joist.util.tests.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/util/src/main/java/joist/converter/AbstractOneWayConverter.java:
--------------------------------------------------------------------------------
1 | package joist.converter;
2 |
3 | public abstract class AbstractOneWayConverter extends AbstractConverter {
4 |
5 | public final T convertTwoToOne(U value, Class extends T> toType) {
6 | throw new UnsupportedConversionException(value, toType);
7 | }
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/util/src/main/java/joist/converter/Converter.java:
--------------------------------------------------------------------------------
1 | package joist.converter;
2 |
3 | public interface Converter {
4 |
5 | Class getTypeOne();
6 |
7 | Class getTypeTwo();
8 |
9 | U convertOneToTwo(T value, Class extends U> toType);
10 |
11 | T convertTwoToOne(U value, Class extends T> toType);
12 |
13 | void setConverterRegistry(ConverterRegistry registry);
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/util/src/main/java/joist/converter/UnsupportedConversionException.java:
--------------------------------------------------------------------------------
1 | package joist.converter;
2 |
3 | public class UnsupportedConversionException extends RuntimeException {
4 |
5 | private static final long serialVersionUID = 1L;
6 | private final Object value;
7 | private final Class> toType;
8 |
9 | public UnsupportedConversionException(Object value, Class> toType) {
10 | this.value = value;
11 | this.toType = toType;
12 | }
13 |
14 | public String getMessage() {
15 | return "Could not covert " + this.value + " to " + this.toType;
16 | }
17 |
18 | public Object getValue() {
19 | return this.value;
20 | }
21 |
22 | public Class> getToType() {
23 | return this.toType;
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/util/src/main/java/joist/jdbc/JdbcException.java:
--------------------------------------------------------------------------------
1 | package joist.jdbc;
2 |
3 | import java.sql.SQLException;
4 |
5 | public class JdbcException extends RuntimeException {
6 |
7 | private static final long serialVersionUID = 1L;
8 |
9 | public JdbcException(SQLException sql) {
10 | super(sql);
11 | }
12 |
13 | public SQLException getCause() {
14 | return (SQLException) super.getCause();
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/util/src/main/java/joist/jdbc/RowMapper.java:
--------------------------------------------------------------------------------
1 | package joist.jdbc;
2 |
3 | import java.sql.ResultSet;
4 | import java.sql.SQLException;
5 |
6 | public interface RowMapper {
7 |
8 | void mapRow(ResultSet rs) throws SQLException;
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/util/src/main/java/joist/sourcegen/Access.java:
--------------------------------------------------------------------------------
1 | package joist.sourcegen;
2 |
3 | public enum Access {
4 |
5 | PUBLIC("public "), PACKAGE(""), PROTECTED("protected "), PRIVATE("private ");
6 |
7 | private String asPrefix;
8 |
9 | private Access(String asPrefix) {
10 | this.asPrefix = asPrefix;
11 | }
12 |
13 | public String asPrefix() {
14 | return this.asPrefix;
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/util/src/main/java/joist/sourcegen/GSettings.java:
--------------------------------------------------------------------------------
1 | package joist.sourcegen;
2 |
3 | public class GSettings {
4 |
5 | private static String defaultIndentation = System.getProperty("joist.sourcegen.defaultIndentation", " ");
6 |
7 | public static void setDefaultIndentation(String value) {
8 | defaultIndentation = value;
9 | }
10 |
11 | public static String getDefaultIndentation() {
12 | return defaultIndentation;
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/util/src/main/java/joist/util/Default.java:
--------------------------------------------------------------------------------
1 | package joist.util;
2 |
3 | public class Default {
4 |
5 | public static T value(T first, T defaultValue) {
6 | return first != null ? first : defaultValue;
7 | }
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/util/src/main/java/joist/util/FluentMap.java:
--------------------------------------------------------------------------------
1 | package joist.util;
2 |
3 | import java.util.LinkedHashMap;
4 |
5 | /** Adds fluent helper methods to HashMap.
6 | *
7 | * Should probably be an interface.
8 | */
9 | public class FluentMap extends LinkedHashMap {
10 |
11 | private static final long serialVersionUID = 1L;
12 |
13 | public FluentMap with(K key, V value) {
14 | this.put(key, value);
15 | return this;
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/util/src/main/java/joist/util/Function1.java:
--------------------------------------------------------------------------------
1 | package joist.util;
2 |
3 | public interface Function1 {
4 |
5 | R apply(P p1);
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/util/src/main/java/joist/util/MapToList.java:
--------------------------------------------------------------------------------
1 | package joist.util;
2 |
3 | import java.util.ArrayList;
4 | import java.util.LinkedHashMap;
5 | import java.util.List;
6 |
7 | public class MapToList extends LinkedHashMap> {
8 |
9 | private static final long serialVersionUID = -1;
10 |
11 | @Override
12 | public List get(Object key) {
13 | List values = super.get(key);
14 | if (values == null) {
15 | values = (List) new ArrayList