diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/App.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/App.java index 83f6ab3d5..c0dbbff47 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/App.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/App.java @@ -22,18 +22,16 @@ */ package com.iluwatar.abstractdocument; -import com.iluwatar.abstractdocument.domain.Car; -import com.iluwatar.abstractdocument.domain.HasModel; -import com.iluwatar.abstractdocument.domain.HasParts; -import com.iluwatar.abstractdocument.domain.HasPrice; -import com.iluwatar.abstractdocument.domain.HasType; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.util.Arrays; import java.util.HashMap; import java.util.Map; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.iluwatar.abstractdocument.domain.Car; +import com.iluwatar.abstractdocument.domain.enums.Property; + /** * The Abstract Document pattern enables handling additional, non-static * properties. This pattern uses concept of traits to enable type safety and @@ -55,20 +53,20 @@ public class App { LOGGER.info("Constructing parts and car"); Map carProperties = new HashMap<>(); - carProperties.put(HasModel.PROPERTY, "300SL"); - carProperties.put(HasPrice.PROPERTY, 10000L); + carProperties.put(Property.MODEL.toString(), "300SL"); + carProperties.put(Property.PRICE.toString(), 10000L); Map wheelProperties = new HashMap<>(); - wheelProperties.put(HasType.PROPERTY, "wheel"); - wheelProperties.put(HasModel.PROPERTY, "15C"); - wheelProperties.put(HasPrice.PROPERTY, 100L); + wheelProperties.put(Property.TYPE.toString(), "wheel"); + wheelProperties.put(Property.MODEL.toString(), "15C"); + wheelProperties.put(Property.PRICE.toString(), 100L); Map doorProperties = new HashMap<>(); - doorProperties.put(HasType.PROPERTY, "door"); - doorProperties.put(HasModel.PROPERTY, "Lambo"); - doorProperties.put(HasPrice.PROPERTY, 300L); + doorProperties.put(Property.TYPE.toString(), "door"); + doorProperties.put(Property.MODEL.toString(), "Lambo"); + doorProperties.put(Property.PRICE.toString(), 300L); - carProperties.put(HasParts.PROPERTY, Arrays.asList(wheelProperties, doorProperties)); + carProperties.put(Property.PARTS.toString(), Arrays.asList(wheelProperties, doorProperties)); Car car = new Car(carProperties); diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasModel.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasModel.java index 252a4644f..3f2c40df8 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasModel.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasModel.java @@ -25,16 +25,15 @@ package com.iluwatar.abstractdocument.domain; import java.util.Optional; import com.iluwatar.abstractdocument.Document; +import com.iluwatar.abstractdocument.domain.enums.Property; /** * HasModel trait for static access to 'model' property */ public interface HasModel extends Document { - String PROPERTY = "model"; - default Optional getModel() { - return Optional.ofNullable((String) get(PROPERTY)); + return Optional.ofNullable((String) get(Property.MODEL.toString())); } } diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasParts.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasParts.java index 9df836376..cf6ec6b01 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasParts.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasParts.java @@ -25,16 +25,16 @@ package com.iluwatar.abstractdocument.domain; import java.util.stream.Stream; import com.iluwatar.abstractdocument.Document; +import com.iluwatar.abstractdocument.domain.enums.Property; /** * HasParts trait for static access to 'parts' property */ public interface HasParts extends Document { - String PROPERTY = "parts"; default Stream getParts() { - return children(PROPERTY, Part::new); + return children(Property.PARTS.toString(), Part::new); } } diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasPrice.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasPrice.java index 39e4d159c..ca2e90189 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasPrice.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasPrice.java @@ -25,16 +25,16 @@ package com.iluwatar.abstractdocument.domain; import java.util.Optional; import com.iluwatar.abstractdocument.Document; +import com.iluwatar.abstractdocument.domain.enums.Property; /** * HasPrice trait for static access to 'price' property */ public interface HasPrice extends Document { - String PROPERTY = "price"; default Optional getPrice() { - return Optional.ofNullable((Number) get(PROPERTY)); + return Optional.ofNullable((Number) get(Property.PRICE.toString())); } } diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasType.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasType.java index 4a80bff20..1dfb36ab2 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasType.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasType.java @@ -22,19 +22,19 @@ */ package com.iluwatar.abstractdocument.domain; -import com.iluwatar.abstractdocument.Document; - import java.util.Optional; +import com.iluwatar.abstractdocument.Document; +import com.iluwatar.abstractdocument.domain.enums.Property; + /** * HasType trait for static access to 'type' property */ public interface HasType extends Document { - String PROPERTY = "type"; default Optional getType() { - return Optional.ofNullable((String) get(PROPERTY)); + return Optional.ofNullable((String) get(Property.TYPE.toString())); } } diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/enums/Property.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/enums/Property.java new file mode 100644 index 000000000..b766141a8 --- /dev/null +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/enums/Property.java @@ -0,0 +1,11 @@ +package com.iluwatar.abstractdocument.domain.enums; + +/** + * + * Enum To Describe Property type + * + */ +public enum Property { + + PARTS, TYPE, PRICE, MODEL +} diff --git a/abstract-document/src/test/java/com/iluwatar/abstractdocument/DomainTest.java b/abstract-document/src/test/java/com/iluwatar/abstractdocument/DomainTest.java index 891e5a457..4c2a1c0d1 100644 --- a/abstract-document/src/test/java/com/iluwatar/abstractdocument/DomainTest.java +++ b/abstract-document/src/test/java/com/iluwatar/abstractdocument/DomainTest.java @@ -22,19 +22,17 @@ */ package com.iluwatar.abstractdocument; -import com.iluwatar.abstractdocument.domain.Car; -import com.iluwatar.abstractdocument.domain.HasModel; -import com.iluwatar.abstractdocument.domain.HasParts; -import com.iluwatar.abstractdocument.domain.HasPrice; -import com.iluwatar.abstractdocument.domain.HasType; -import com.iluwatar.abstractdocument.domain.Part; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.Arrays; import java.util.HashMap; import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + +import com.iluwatar.abstractdocument.domain.Car; +import com.iluwatar.abstractdocument.domain.Part; +import com.iluwatar.abstractdocument.domain.enums.Property; /** * Test for Part and Car @@ -51,9 +49,9 @@ public class DomainTest { @Test public void shouldConstructPart() { Map partProperties = new HashMap<>(); - partProperties.put(HasType.PROPERTY, TEST_PART_TYPE); - partProperties.put(HasModel.PROPERTY, TEST_PART_MODEL); - partProperties.put(HasPrice.PROPERTY, TEST_PART_PRICE); + partProperties.put(Property.TYPE.toString(), TEST_PART_TYPE); + partProperties.put(Property.MODEL.toString(), TEST_PART_MODEL); + partProperties.put(Property.PRICE.toString(), TEST_PART_PRICE); Part part = new Part(partProperties); assertEquals(TEST_PART_TYPE, part.getType().get()); @@ -64,9 +62,9 @@ public class DomainTest { @Test public void shouldConstructCar() { Map carProperties = new HashMap<>(); - carProperties.put(HasModel.PROPERTY, TEST_CAR_MODEL); - carProperties.put(HasPrice.PROPERTY, TEST_CAR_PRICE); - carProperties.put(HasParts.PROPERTY, Arrays.asList(new HashMap<>(), new HashMap<>())); + carProperties.put(Property.MODEL.toString(), TEST_CAR_MODEL); + carProperties.put(Property.PRICE.toString(), TEST_CAR_PRICE); + carProperties.put(Property.PARTS.toString(), Arrays.asList(new HashMap<>(), new HashMap<>())); Car car = new Car(carProperties); assertEquals(TEST_CAR_MODEL, car.getModel().get()); diff --git a/caching/src/main/java/com/iluwatar/caching/DbManager.java b/caching/src/main/java/com/iluwatar/caching/DbManager.java index 6fccaf43e..9de45a17e 100644 --- a/caching/src/main/java/com/iluwatar/caching/DbManager.java +++ b/caching/src/main/java/com/iluwatar/caching/DbManager.java @@ -28,6 +28,7 @@ import java.util.Map; import org.bson.Document; +import com.iluwatar.caching.constants.CachingConstants; import com.mongodb.MongoClient; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoDatabase; @@ -90,12 +91,12 @@ public final class DbManager { } } FindIterable iterable = - db.getCollection("user_accounts").find(new Document("userID", userId)); + db.getCollection(CachingConstants.USER_ACCOUNT).find(new Document(CachingConstants.USER_ID, userId)); if (iterable == null) { return null; } Document doc = iterable.first(); - return new UserAccount(userId, doc.getString("userName"), doc.getString("additionalInfo")); + return new UserAccount(userId, doc.getString(CachingConstants.USER_NAME), doc.getString(CachingConstants.ADD_INFO)); } /** @@ -113,9 +114,9 @@ public final class DbManager { e.printStackTrace(); } } - db.getCollection("user_accounts").insertOne( - new Document("userID", userAccount.getUserId()).append("userName", - userAccount.getUserName()).append("additionalInfo", userAccount.getAdditionalInfo())); + db.getCollection(CachingConstants.USER_ACCOUNT).insertOne( + new Document(CachingConstants.USER_ID ,userAccount.getUserId()).append(CachingConstants.USER_NAME, + userAccount.getUserName()).append(CachingConstants.ADD_INFO, userAccount.getAdditionalInfo())); } /** @@ -133,10 +134,10 @@ public final class DbManager { e.printStackTrace(); } } - db.getCollection("user_accounts").updateOne( - new Document("userID", userAccount.getUserId()), - new Document("$set", new Document("userName", userAccount.getUserName()).append( - "additionalInfo", userAccount.getAdditionalInfo()))); + db.getCollection(CachingConstants.USER_ACCOUNT).updateOne( + new Document(CachingConstants.USER_ID, userAccount.getUserId()), + new Document("$set", new Document(CachingConstants.USER_NAME, userAccount.getUserName()) + .append(CachingConstants.ADD_INFO, userAccount.getAdditionalInfo()))); } /** @@ -155,10 +156,12 @@ public final class DbManager { e.printStackTrace(); } } - db.getCollection("user_accounts").updateOne( - new Document("userID", userAccount.getUserId()), - new Document("$set", new Document("userID", userAccount.getUserId()).append("userName", - userAccount.getUserName()).append("additionalInfo", userAccount.getAdditionalInfo())), + db.getCollection(CachingConstants.USER_ACCOUNT).updateOne( + new Document(CachingConstants.USER_ID, userAccount.getUserId()), + new Document("$set", + new Document(CachingConstants.USER_ID, userAccount.getUserId()) + .append(CachingConstants.USER_NAME, userAccount.getUserName()).append(CachingConstants.ADD_INFO, + userAccount.getAdditionalInfo())), new UpdateOptions().upsert(true)); } } diff --git a/caching/src/main/java/com/iluwatar/caching/constants/CachingConstants.java b/caching/src/main/java/com/iluwatar/caching/constants/CachingConstants.java new file mode 100644 index 000000000..cc5e34e2d --- /dev/null +++ b/caching/src/main/java/com/iluwatar/caching/constants/CachingConstants.java @@ -0,0 +1,15 @@ +package com.iluwatar.caching.constants; + +/** + * + * Constant class for defining constants + * + */ +public class CachingConstants { + + public static final String USER_ACCOUNT = "user_accounts"; + public static final String USER_ID = "userID"; + public static final String USER_NAME = "userName"; + public static final String ADD_INFO = "additionalInfo"; + +} diff --git a/cqrs/src/main/java/com/iluwatar/cqrs/app/App.java b/cqrs/src/main/java/com/iluwatar/cqrs/app/App.java index a943a7f88..0f766e5c7 100644 --- a/cqrs/src/main/java/com/iluwatar/cqrs/app/App.java +++ b/cqrs/src/main/java/com/iluwatar/cqrs/app/App.java @@ -30,6 +30,7 @@ import org.slf4j.LoggerFactory; import com.iluwatar.cqrs.commandes.CommandServiceImpl; import com.iluwatar.cqrs.commandes.ICommandService; +import com.iluwatar.cqrs.constants.AppConstants; import com.iluwatar.cqrs.dto.Author; import com.iluwatar.cqrs.dto.Book; import com.iluwatar.cqrs.queries.IQueryService; @@ -60,27 +61,27 @@ public class App { ICommandService commands = new CommandServiceImpl(); // Create Authors and Books using CommandService - commands.authorCreated("eEvans", "Eric Evans", "eEvans@email.com"); - commands.authorCreated("jBloch", "Joshua Bloch", "jBloch@email.com"); - commands.authorCreated("mFowler", "Martin Fowler", "mFowler@email.com"); + commands.authorCreated(AppConstants.E_EVANS, "Eric Evans", "eEvans@email.com"); + commands.authorCreated(AppConstants.J_BLOCH, "Joshua Bloch", "jBloch@email.com"); + commands.authorCreated(AppConstants.M_FOWLER, "Martin Fowler", "mFowler@email.com"); - commands.bookAddedToAuthor("Domain-Driven Design", 60.08, "eEvans"); - commands.bookAddedToAuthor("Effective Java", 40.54, "jBloch"); - commands.bookAddedToAuthor("Java Puzzlers", 39.99, "jBloch"); - commands.bookAddedToAuthor("Java Concurrency in Practice", 29.40, "jBloch"); - commands.bookAddedToAuthor("Patterns of Enterprise Application Architecture", 54.01, "mFowler"); - commands.bookAddedToAuthor("Domain Specific Languages", 48.89, "mFowler"); - commands.authorNameUpdated("eEvans", "Eric J. Evans"); + commands.bookAddedToAuthor("Domain-Driven Design", 60.08, AppConstants.E_EVANS); + commands.bookAddedToAuthor("Effective Java", 40.54, AppConstants.J_BLOCH); + commands.bookAddedToAuthor("Java Puzzlers", 39.99, AppConstants.J_BLOCH); + commands.bookAddedToAuthor("Java Concurrency in Practice", 29.40, AppConstants.J_BLOCH); + commands.bookAddedToAuthor("Patterns of Enterprise Application Architecture", 54.01, AppConstants.M_FOWLER); + commands.bookAddedToAuthor("Domain Specific Languages", 48.89, AppConstants.M_FOWLER); + commands.authorNameUpdated(AppConstants.E_EVANS, "Eric J. Evans"); IQueryService queries = new QueryServiceImpl(); // Query the database using QueryService Author nullAuthor = queries.getAuthorByUsername("username"); - Author eEvans = queries.getAuthorByUsername("eEvans"); - BigInteger jBlochBooksCount = queries.getAuthorBooksCount("jBloch"); + Author eEvans = queries.getAuthorByUsername(AppConstants.E_EVANS); + BigInteger jBlochBooksCount = queries.getAuthorBooksCount(AppConstants.J_BLOCH); BigInteger authorsCount = queries.getAuthorsCount(); Book dddBook = queries.getBook("Domain-Driven Design"); - List jBlochBooks = queries.getAuthorBooks("jBloch"); + List jBlochBooks = queries.getAuthorBooks(AppConstants.J_BLOCH); LOGGER.info("Author username : {}", nullAuthor); LOGGER.info("Author eEvans : {}", eEvans); diff --git a/cqrs/src/main/java/com/iluwatar/cqrs/constants/AppConstants.java b/cqrs/src/main/java/com/iluwatar/cqrs/constants/AppConstants.java new file mode 100644 index 000000000..154d63a89 --- /dev/null +++ b/cqrs/src/main/java/com/iluwatar/cqrs/constants/AppConstants.java @@ -0,0 +1,15 @@ +package com.iluwatar.cqrs.constants; + +/** + * + * Class to define the constants + * + */ +public class AppConstants { + + public static final String E_EVANS = "eEvans"; + public static final String J_BLOCH = "jBloch"; + public static final String M_FOWLER = "mFowler"; + public static final String USER_NAME = "username"; + +} diff --git a/cqrs/src/main/java/com/iluwatar/cqrs/queries/QueryServiceImpl.java b/cqrs/src/main/java/com/iluwatar/cqrs/queries/QueryServiceImpl.java index dc44d0f1b..86eb4dd2f 100644 --- a/cqrs/src/main/java/com/iluwatar/cqrs/queries/QueryServiceImpl.java +++ b/cqrs/src/main/java/com/iluwatar/cqrs/queries/QueryServiceImpl.java @@ -30,6 +30,7 @@ import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.transform.Transformers; +import com.iluwatar.cqrs.constants.AppConstants; import com.iluwatar.cqrs.dto.Author; import com.iluwatar.cqrs.dto.Book; import com.iluwatar.cqrs.util.HibernateUtil; @@ -50,7 +51,7 @@ public class QueryServiceImpl implements IQueryService { SQLQuery sqlQuery = session .createSQLQuery("SELECT a.username as \"username\", a.name as \"name\", a.email as \"email\"" + "FROM Author a where a.username=:username"); - sqlQuery.setParameter("username", username); + sqlQuery.setParameter(AppConstants.USER_NAME, username); authorDTo = (Author) sqlQuery.setResultTransformer(Transformers.aliasToBean(Author.class)).uniqueResult(); } return authorDTo; @@ -74,7 +75,7 @@ public class QueryServiceImpl implements IQueryService { try (Session session = sessionFactory.openSession()) { SQLQuery sqlQuery = session.createSQLQuery("SELECT b.title as \"title\", b.price as \"price\"" + " FROM Author a , Book b where b.author_id = a.id and a.username=:username"); - sqlQuery.setParameter("username", username); + sqlQuery.setParameter(AppConstants.USER_NAME, username); bookDTos = sqlQuery.setResultTransformer(Transformers.aliasToBean(Book.class)).list(); } return bookDTos; @@ -86,7 +87,7 @@ public class QueryServiceImpl implements IQueryService { try (Session session = sessionFactory.openSession()) { SQLQuery sqlQuery = session.createSQLQuery( "SELECT count(b.title)" + " FROM Book b, Author a where b.author_id = a.id and a.username=:username"); - sqlQuery.setParameter("username", username); + sqlQuery.setParameter(AppConstants.USER_NAME, username); bookcount = (BigInteger) sqlQuery.uniqueResult(); } return bookcount; diff --git a/dao/src/main/java/com/iluwatar/dao/App.java b/dao/src/main/java/com/iluwatar/dao/App.java index d2fa945b6..b5e70f257 100644 --- a/dao/src/main/java/com/iluwatar/dao/App.java +++ b/dao/src/main/java/com/iluwatar/dao/App.java @@ -52,6 +52,7 @@ import org.h2.jdbcx.JdbcDataSource; public class App { private static final String DB_URL = "jdbc:h2:~/dao"; private static Logger log = Logger.getLogger(App.class); + private static final String ALL_CUSTOMERS = "customerDao.getAllCustomers(): "; /** * Program entry point. @@ -92,23 +93,23 @@ public class App { private static void performOperationsUsing(final CustomerDao customerDao) throws Exception { addCustomers(customerDao); - log.info("customerDao.getAllCustomers(): "); + log.info(ALL_CUSTOMERS); try (Stream customerStream = customerDao.getAll()) { customerStream.forEach((customer) -> log.info(customer)); } log.info("customerDao.getCustomerById(2): " + customerDao.getById(2)); final Customer customer = new Customer(4, "Dan", "Danson"); customerDao.add(customer); - log.info("customerDao.getAllCustomers(): " + customerDao.getAll()); + log.info(ALL_CUSTOMERS + customerDao.getAll()); customer.setFirstName("Daniel"); customer.setLastName("Danielson"); customerDao.update(customer); - log.info("customerDao.getAllCustomers(): "); + log.info(ALL_CUSTOMERS); try (Stream customerStream = customerDao.getAll()) { customerStream.forEach((cust) -> log.info(cust)); } customerDao.delete(customer); - log.info("customerDao.getAllCustomers(): " + customerDao.getAll()); + log.info(ALL_CUSTOMERS + customerDao.getAll()); } private static void addCustomers(CustomerDao customerDao) throws Exception { diff --git a/data-mapper/src/main/java/com/iluwatar/datamapper/App.java b/data-mapper/src/main/java/com/iluwatar/datamapper/App.java index 5fcd0d9ea..9a6cbcd05 100644 --- a/data-mapper/src/main/java/com/iluwatar/datamapper/App.java +++ b/data-mapper/src/main/java/com/iluwatar/datamapper/App.java @@ -36,6 +36,8 @@ import org.apache.log4j.Logger; public final class App { private static Logger log = Logger.getLogger(App.class); + private static final String STUDENT_STRING = "App.main(), student : "; + /** * Program entry point. @@ -53,12 +55,12 @@ public final class App { /* Add student in respectibe store */ mapper.insert(student); - log.debug("App.main(), student : " + student + ", is inserted"); + log.debug(STUDENT_STRING + student + ", is inserted"); /* Find this student */ final Optional studentToBeFound = mapper.find(student.getStudentId()); - log.debug("App.main(), student : " + studentToBeFound + ", is searched"); + log.debug(STUDENT_STRING + studentToBeFound + ", is searched"); /* Update existing student object */ student = new Student(student.getStudentId(), "AdamUpdated", 'A'); @@ -66,8 +68,8 @@ public final class App { /* Update student in respectibe db */ mapper.update(student); - log.debug("App.main(), student : " + student + ", is updated"); - log.debug("App.main(), student : " + student + ", is going to be deleted"); + log.debug(STUDENT_STRING + student + ", is updated"); + log.debug(STUDENT_STRING + student + ", is going to be deleted"); /* Delete student in db */ mapper.delete(student); diff --git a/double-dispatch/src/main/java/com/iluwatar/doubledispatch/Meteoroid.java b/double-dispatch/src/main/java/com/iluwatar/doubledispatch/Meteoroid.java index 311ffa0e1..b5832fe41 100644 --- a/double-dispatch/src/main/java/com/iluwatar/doubledispatch/Meteoroid.java +++ b/double-dispatch/src/main/java/com/iluwatar/doubledispatch/Meteoroid.java @@ -25,6 +25,8 @@ package com.iluwatar.doubledispatch; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.iluwatar.doubledispatch.constants.AppConstants; + /** * * Meteoroid game object @@ -45,21 +47,21 @@ public class Meteoroid extends GameObject { @Override public void collisionResolve(FlamingAsteroid asteroid) { - LOGGER.info("{} hits {}.", asteroid.getClass().getSimpleName(), this.getClass().getSimpleName()); + LOGGER.info(AppConstants.HITS, asteroid.getClass().getSimpleName(), this.getClass().getSimpleName()); } @Override public void collisionResolve(Meteoroid meteoroid) { - LOGGER.info("{} hits {}.", meteoroid.getClass().getSimpleName(), this.getClass().getSimpleName()); + LOGGER.info(AppConstants.HITS, meteoroid.getClass().getSimpleName(), this.getClass().getSimpleName()); } @Override public void collisionResolve(SpaceStationMir mir) { - LOGGER.info("{} hits {}.", mir.getClass().getSimpleName(), this.getClass().getSimpleName()); + LOGGER.info(AppConstants.HITS, mir.getClass().getSimpleName(), this.getClass().getSimpleName()); } @Override public void collisionResolve(SpaceStationIss iss) { - LOGGER.info("{} hits {}.", iss.getClass().getSimpleName(), this.getClass().getSimpleName()); + LOGGER.info(AppConstants.HITS, iss.getClass().getSimpleName(), this.getClass().getSimpleName()); } } diff --git a/double-dispatch/src/main/java/com/iluwatar/doubledispatch/SpaceStationMir.java b/double-dispatch/src/main/java/com/iluwatar/doubledispatch/SpaceStationMir.java index 419be2e30..e1183f9af 100644 --- a/double-dispatch/src/main/java/com/iluwatar/doubledispatch/SpaceStationMir.java +++ b/double-dispatch/src/main/java/com/iluwatar/doubledispatch/SpaceStationMir.java @@ -25,6 +25,8 @@ package com.iluwatar.doubledispatch; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.iluwatar.doubledispatch.constants.AppConstants; + /** * * Space station Mir game object @@ -45,7 +47,7 @@ public class SpaceStationMir extends GameObject { @Override public void collisionResolve(FlamingAsteroid asteroid) { - LOGGER.info("{} hits {}. {} is damaged! {} is set on fire!", asteroid.getClass().getSimpleName(), + LOGGER.info(AppConstants.HITS," {} is damaged! {} is set on fire!", asteroid.getClass().getSimpleName(), this.getClass().getSimpleName(), this.getClass().getSimpleName(), this.getClass().getSimpleName()); setDamaged(true); setOnFire(true); @@ -53,21 +55,21 @@ public class SpaceStationMir extends GameObject { @Override public void collisionResolve(Meteoroid meteoroid) { - LOGGER.info("{} hits {}. {} is damaged!", meteoroid.getClass().getSimpleName(), + LOGGER.info(AppConstants.HITS," {} is damaged!", meteoroid.getClass().getSimpleName(), this.getClass().getSimpleName(), this.getClass().getSimpleName()); setDamaged(true); } @Override public void collisionResolve(SpaceStationMir mir) { - LOGGER.info("{} hits {}. {} is damaged!", mir.getClass().getSimpleName(), + LOGGER.info(AppConstants.HITS," {} is damaged!", mir.getClass().getSimpleName(), this.getClass().getSimpleName(), this.getClass().getSimpleName()); setDamaged(true); } @Override public void collisionResolve(SpaceStationIss iss) { - LOGGER.info("{} hits {}. {} is damaged!", iss.getClass().getSimpleName(), + LOGGER.info(AppConstants.HITS," {} is damaged!", iss.getClass().getSimpleName(), this.getClass().getSimpleName(), this.getClass().getSimpleName()); setDamaged(true); } diff --git a/double-dispatch/src/main/java/com/iluwatar/doubledispatch/constants/AppConstants.java b/double-dispatch/src/main/java/com/iluwatar/doubledispatch/constants/AppConstants.java new file mode 100644 index 000000000..7e25e67b5 --- /dev/null +++ b/double-dispatch/src/main/java/com/iluwatar/doubledispatch/constants/AppConstants.java @@ -0,0 +1,11 @@ +package com.iluwatar.doubledispatch.constants; + +/** + * + * Constants class to define all constants + * + */ +public class AppConstants { + + public static final String HITS = "{} hits {}."; +}