Implement DAO Factory pattern#3282
Conversation
PR SummaryThis PR implements the DAO Factory pattern, providing flexible data access by switching between H2, Mongo, and JSON flat file data sources. It includes a Changes
autogenerated by presubmit.ai |
There was a problem hiding this comment.
✅ LGTM!
Review Summary
Commits Considered (8)
Files Processed (24)
- dao-factory/README.md (1 hunk)
- dao-factory/etc/dao-factory.png (0 hunks)
- dao-factory/etc/dao-factory.puml (1 hunk)
- dao-factory/pom.xml (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/App.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/CustomException.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/Customer.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/CustomerDAO.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/DAOFactory.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/DAOFactoryProvider.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/DataSourceType.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileCustomerDAO.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileDataSourceFactory.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/H2CustomerDAO.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/MongoCustomerDAO.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/MongoDataSourceFactory.java (1 hunk)
- dao-factory/src/main/resources/logback.xml (1 hunk)
- dao-factory/src/test/java/com/iluwatar/daofactory/AppTest.java (1 hunk)
- dao-factory/src/test/java/com/iluwatar/daofactory/DAOFactoryTest.java (1 hunk)
- dao-factory/src/test/java/com/iluwatar/daofactory/FlatFileCustomerDAOTest.java (1 hunk)
- dao-factory/src/test/java/com/iluwatar/daofactory/H2CustomerDAOTest.java (1 hunk)
- dao-factory/src/test/java/com/iluwatar/daofactory/MongoCustomerDAOTest.java (1 hunk)
- pom.xml (2 hunks)
Actionable Comments (0)
Skipped Comments (0)
There was a problem hiding this comment.
✅ LGTM!
Review Summary
Commits Considered (1)
- 9afad6d: add pom.xml
Files Processed (24)
- dao-factory/README.md (1 hunk)
- dao-factory/etc/dao-factory.png (0 hunks)
- dao-factory/etc/dao-factory.puml (1 hunk)
- dao-factory/pom.xml (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/App.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/CustomException.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/Customer.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/CustomerDAO.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/DAOFactory.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/DAOFactoryProvider.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/DataSourceType.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileCustomerDAO.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileDataSourceFactory.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/H2CustomerDAO.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/MongoCustomerDAO.java (1 hunk)
- dao-factory/src/main/java/com/iluwatar/daofactory/MongoDataSourceFactory.java (1 hunk)
- dao-factory/src/main/resources/logback.xml (1 hunk)
- dao-factory/src/test/java/com/iluwatar/daofactory/AppTest.java (1 hunk)
- dao-factory/src/test/java/com/iluwatar/daofactory/DAOFactoryTest.java (1 hunk)
- dao-factory/src/test/java/com/iluwatar/daofactory/FlatFileCustomerDAOTest.java (1 hunk)
- dao-factory/src/test/java/com/iluwatar/daofactory/H2CustomerDAOTest.java (1 hunk)
- dao-factory/src/test/java/com/iluwatar/daofactory/MongoCustomerDAOTest.java (1 hunk)
- pom.xml (1 hunk)
Actionable Comments (0)
Skipped Comments (0)
| return switch (dataSourceType) { | ||
| case H2 -> new H2DataSourceFactory(); | ||
| case MONGO -> new MongoDataSourceFactory(); | ||
| case FLAT_FILE -> new FlatFileDataSourceFactory(); |
There was a problem hiding this comment.
As per the provided documentation -
default -> throw new IllegalArgumentException("Unsupported data source type");
There was a problem hiding this comment.
As per the provided documentation -
default -> throw new IllegalArgumentException("Unsupported data source type");
Thanks, I fixed it
There was a problem hiding this comment.
✅ LGTM!
Review Summary
Commits Considered (1)
- 2a66d97: fix: throw exception + refactor
Files Processed (2)
- dao-factory/src/main/java/com/iluwatar/daofactory/DAOFactoryProvider.java (1 hunk)
- pom.xml (1 hunk)
Actionable Comments (0)
Skipped Comments (0)
|
|
This PR is stale because it has been open 60 days with no activity. |
|
@all-contributors please add @letdtcode for code |
|
I've put up a pull request to add @letdtcode! 🎉 |



Pull Request Template
What does this PR do?
This pull request implements the DAO Factory pattern, which demonstrates how the application should be switch between three different types of data sources (H2, Mongo, Json flat file). It includes code documented implementation, comprehensive tests, detailed documentation.
Key features
Related Issue
Closes #1270