mirror of
https://github.com/tiennm99/java-design-patterns.git
synced 2026-05-14 08:58:26 +00:00
* Issue #2377: The repository code has been refactored to use the record class * Issue #2377: Refactored according to the rules defined for the repo code * Issue #2377: Refactored according to the rules defined for the repo code * Issue #2377: Refactored according to the rules defined for the repo code
This commit is contained in:
@@ -25,48 +25,13 @@
|
||||
package com.iluwatar.builder;
|
||||
|
||||
/**
|
||||
* Hero, the class with many parameters.
|
||||
* Hero,the record class.
|
||||
*/
|
||||
public final class Hero {
|
||||
|
||||
private final Profession profession;
|
||||
private final String name;
|
||||
private final HairType hairType;
|
||||
private final HairColor hairColor;
|
||||
private final Armor armor;
|
||||
private final Weapon weapon;
|
||||
public record Hero(Profession profession, String name, HairType hairType, HairColor hairColor, Armor armor, Weapon weapon) {
|
||||
|
||||
private Hero(Builder builder) {
|
||||
this.profession = builder.profession;
|
||||
this.name = builder.name;
|
||||
this.hairColor = builder.hairColor;
|
||||
this.hairType = builder.hairType;
|
||||
this.weapon = builder.weapon;
|
||||
this.armor = builder.armor;
|
||||
}
|
||||
|
||||
public Profession getProfession() {
|
||||
return profession;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public HairType getHairType() {
|
||||
return hairType;
|
||||
}
|
||||
|
||||
public HairColor getHairColor() {
|
||||
return hairColor;
|
||||
}
|
||||
|
||||
public Armor getArmor() {
|
||||
return armor;
|
||||
}
|
||||
|
||||
public Weapon getWeapon() {
|
||||
return weapon;
|
||||
this(builder.profession, builder.name, builder.hairType, builder.hairColor, builder.armor, builder.weapon);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -69,12 +69,12 @@ class HeroTest {
|
||||
|
||||
assertNotNull(hero);
|
||||
assertNotNull(hero.toString());
|
||||
assertEquals(Profession.WARRIOR, hero.getProfession());
|
||||
assertEquals(heroName, hero.getName());
|
||||
assertEquals(Armor.CHAIN_MAIL, hero.getArmor());
|
||||
assertEquals(Weapon.SWORD, hero.getWeapon());
|
||||
assertEquals(HairType.LONG_CURLY, hero.getHairType());
|
||||
assertEquals(HairColor.BLOND, hero.getHairColor());
|
||||
assertEquals(Profession.WARRIOR, hero.profession());
|
||||
assertEquals(heroName, hero.name());
|
||||
assertEquals(Armor.CHAIN_MAIL, hero.armor());
|
||||
assertEquals(Weapon.SWORD, hero.weapon());
|
||||
assertEquals(HairType.LONG_CURLY, hero.hairType());
|
||||
assertEquals(HairColor.BLOND, hero.hairColor());
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* This project is licensed under the MIT license. Module intercepting-filter is using ZK framework licensed under LGPL (see lgpl-3.0.txt).
|
||||
* This project is licensed under the MIT license. Module model-view-viewmodel is using ZK framework licensed under LGPL (see lgpl-3.0.txt).
|
||||
*
|
||||
* The MIT License
|
||||
* Copyright © 2014-2022 Ilkka Seppälä
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* This project is licensed under the MIT license. Module model-view-presenter is using ZK framework licensed under LGPL (see lgpl-3.0.txt).
|
||||
* This project is licensed under the MIT license. Module model-view-viewmodel is using ZK framework licensed under LGPL (see lgpl-3.0.txt).
|
||||
*
|
||||
* The MIT License
|
||||
* Copyright © 2014-2022 Ilkka Seppälä
|
||||
|
||||
@@ -54,10 +54,10 @@ public class App {
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
var user = new User("user", 24, Sex.FEMALE, "foobar.com");
|
||||
LOGGER.info(Validator.of(user).validate(User::getName, Objects::nonNull, "name is null")
|
||||
.validate(User::getName, name -> !name.isEmpty(), "name is empty")
|
||||
.validate(User::getEmail, email -> !email.contains("@"), "email doesn't contains '@'")
|
||||
.validate(User::getAge, age -> age > 20 && age < 30, "age isn't between...").get()
|
||||
LOGGER.info(Validator.of(user).validate(User::name, Objects::nonNull, "name is null")
|
||||
.validate(User::name, name -> !name.isEmpty(), "name is empty")
|
||||
.validate(User::email, email -> !email.contains("@"), "email doesn't contains '@'")
|
||||
.validate(User::age, age -> age > 20 && age < 30, "age isn't between...").get()
|
||||
.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,43 +25,13 @@
|
||||
package com.iluwatar.monad;
|
||||
|
||||
/**
|
||||
* User Definition.
|
||||
* Record class.
|
||||
*
|
||||
* @param name - name
|
||||
* @param age - age
|
||||
* @param sex - sex
|
||||
* @param email - email address
|
||||
*/
|
||||
public class User {
|
||||
|
||||
private final String name;
|
||||
private final int age;
|
||||
private final Sex sex;
|
||||
private final String email;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param name - name
|
||||
* @param age - age
|
||||
* @param sex - sex
|
||||
* @param email - email address
|
||||
*/
|
||||
public User(String name, int age, Sex sex, String email) {
|
||||
this.name = name;
|
||||
this.age = age;
|
||||
this.sex = sex;
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public int getAge() {
|
||||
return age;
|
||||
}
|
||||
|
||||
public Sex getSex() {
|
||||
return sex;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
public record User(String name, int age, Sex sex, String email) {
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ class MonadTest {
|
||||
assertThrows(
|
||||
IllegalStateException.class,
|
||||
() -> Validator.of(tom)
|
||||
.validate(User::getName, Objects::nonNull, "name cannot be null")
|
||||
.validate(User::name, Objects::nonNull, "name cannot be null")
|
||||
.get()
|
||||
);
|
||||
}
|
||||
@@ -52,8 +52,8 @@ class MonadTest {
|
||||
assertThrows(
|
||||
IllegalStateException.class,
|
||||
() -> Validator.of(john)
|
||||
.validate(User::getName, Objects::nonNull, "name cannot be null")
|
||||
.validate(User::getAge, age -> age > 21, "user is underage")
|
||||
.validate(User::name, Objects::nonNull, "name cannot be null")
|
||||
.validate(User::age, age -> age > 21, "user is underage")
|
||||
.get()
|
||||
);
|
||||
}
|
||||
@@ -62,10 +62,10 @@ class MonadTest {
|
||||
void testForValid() {
|
||||
var sarah = new User("Sarah", 42, Sex.FEMALE, "sarah@det.org");
|
||||
var validated = Validator.of(sarah)
|
||||
.validate(User::getName, Objects::nonNull, "name cannot be null")
|
||||
.validate(User::getAge, age -> age > 21, "user is underage")
|
||||
.validate(User::getSex, sex -> sex == Sex.FEMALE, "user is not female")
|
||||
.validate(User::getEmail, email -> email.contains("@"), "email does not contain @ sign")
|
||||
.validate(User::name, Objects::nonNull, "name cannot be null")
|
||||
.validate(User::age, age -> age > 21, "user is underage")
|
||||
.validate(User::sex, sex -> sex == Sex.FEMALE, "user is not female")
|
||||
.validate(User::email, email -> email.contains("@"), "email does not contain @ sign")
|
||||
.get();
|
||||
assertSame(validated, sarah);
|
||||
}
|
||||
|
||||
@@ -29,27 +29,9 @@ import lombok.extern.slf4j.Slf4j;
|
||||
/**
|
||||
* Implementation for binary tree's normal nodes.
|
||||
*/
|
||||
|
||||
@Slf4j
|
||||
public class NodeImpl implements Node {
|
||||
|
||||
private final String name;
|
||||
private final Node left;
|
||||
private final Node right;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*/
|
||||
public NodeImpl(String name, Node left, Node right) {
|
||||
this.name = name;
|
||||
this.left = left;
|
||||
this.right = right;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTreeSize() {
|
||||
return 1 + left.getTreeSize() + right.getTreeSize();
|
||||
}
|
||||
|
||||
public record NodeImpl(String name, Node left, Node right) implements Node {
|
||||
@Override
|
||||
public Node getLeft() {
|
||||
return left;
|
||||
@@ -64,7 +46,10 @@ public class NodeImpl implements Node {
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTreeSize() {
|
||||
return 1 + left.getTreeSize() + right.getTreeSize();
|
||||
}
|
||||
@Override
|
||||
public void walk() {
|
||||
LOGGER.info(name);
|
||||
|
||||
@@ -26,34 +26,10 @@ package com.iluwatar.partialresponse;
|
||||
|
||||
/**
|
||||
* {@link Video} is a entity to serve from server.It contains all video related information.
|
||||
* Video is a record class.
|
||||
*/
|
||||
public class Video {
|
||||
private final Integer id;
|
||||
private final String title;
|
||||
private final Integer length;
|
||||
private final String description;
|
||||
private final String director;
|
||||
private final String language;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param id video unique id
|
||||
* @param title video title
|
||||
* @param len video length in minutes
|
||||
* @param desc video description by publisher
|
||||
* @param director video director name
|
||||
* @param lang video language {private, public}
|
||||
*/
|
||||
public Video(Integer id, String title, Integer len, String desc, String director, String lang) {
|
||||
this.id = id;
|
||||
this.title = title;
|
||||
this.length = len;
|
||||
this.description = desc;
|
||||
this.director = director;
|
||||
this.language = lang;
|
||||
}
|
||||
|
||||
public record Video(Integer id, String title, Integer length, String description, String director, String language) {
|
||||
/**
|
||||
* ToString.
|
||||
*
|
||||
@@ -62,12 +38,12 @@ public class Video {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "{"
|
||||
+ "\"id\": " + id + ","
|
||||
+ "\"title\": \"" + title + "\","
|
||||
+ "\"length\": " + length + ","
|
||||
+ "\"description\": \"" + description + "\","
|
||||
+ "\"director\": \"" + director + "\","
|
||||
+ "\"language\": \"" + language + "\","
|
||||
+ "}";
|
||||
+ "\"id\": " + id + ","
|
||||
+ "\"title\": \"" + title + "\","
|
||||
+ "\"length\": " + length + ","
|
||||
+ "\"description\": \"" + description + "\","
|
||||
+ "\"director\": \"" + director + "\","
|
||||
+ "\"language\": \"" + language + "\","
|
||||
+ "}";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,24 +27,14 @@ package com.iluwatar.partialresponse;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* The resource class which serves video information. This class act as server in the demo. Which
|
||||
* The resource record class which serves video information. This class act as server in the demo. Which
|
||||
* has all video details.
|
||||
*
|
||||
* @param fieldJsonMapper map object to json.
|
||||
* @param videos initialize resource with existing videos. Act as database.
|
||||
*/
|
||||
public class VideoResource {
|
||||
private final FieldJsonMapper fieldJsonMapper;
|
||||
private final Map<Integer, Video> videos;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param fieldJsonMapper map object to json.
|
||||
* @param videos initialize resource with existing videos. Act as database.
|
||||
*/
|
||||
public VideoResource(FieldJsonMapper fieldJsonMapper, Map<Integer, Video> videos) {
|
||||
this.fieldJsonMapper = fieldJsonMapper;
|
||||
this.videos = videos;
|
||||
}
|
||||
|
||||
public record VideoResource(FieldJsonMapper fieldJsonMapper, Map<Integer, Video> videos) {
|
||||
/**
|
||||
* Get Details.
|
||||
*
|
||||
|
||||
@@ -44,6 +44,6 @@ public class ImmutableStew {
|
||||
public void mix() {
|
||||
LOGGER
|
||||
.info("Mixing the immutable stew we find: {} potatoes, {} carrots, {} meat and {} peppers",
|
||||
data.getNumPotatoes(), data.getNumCarrots(), data.getNumMeat(), data.getNumPeppers());
|
||||
data.numPotatoes(), data.numCarrots(), data.numMeat(), data.numPeppers());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,36 +27,6 @@ package com.iluwatar.privateclassdata;
|
||||
/**
|
||||
* Stew ingredients.
|
||||
*/
|
||||
public class StewData {
|
||||
|
||||
private final int numPotatoes;
|
||||
private final int numCarrots;
|
||||
private final int numMeat;
|
||||
private final int numPeppers;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*/
|
||||
public StewData(int numPotatoes, int numCarrots, int numMeat, int numPeppers) {
|
||||
this.numPotatoes = numPotatoes;
|
||||
this.numCarrots = numCarrots;
|
||||
this.numMeat = numMeat;
|
||||
this.numPeppers = numPeppers;
|
||||
}
|
||||
|
||||
public int getNumPotatoes() {
|
||||
return numPotatoes;
|
||||
}
|
||||
|
||||
public int getNumCarrots() {
|
||||
return numCarrots;
|
||||
}
|
||||
|
||||
public int getNumMeat() {
|
||||
return numMeat;
|
||||
}
|
||||
|
||||
public int getNumPeppers() {
|
||||
return numPeppers;
|
||||
}
|
||||
public record StewData(int numPotatoes, int numCarrots, int numMeat, int numPeppers) {
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ public class Consumer {
|
||||
public void consume() throws InterruptedException {
|
||||
var item = queue.take();
|
||||
LOGGER.info("Consumer [{}] consume item [{}] produced by [{}]", name,
|
||||
item.getId(), item.getProducer());
|
||||
item.id(), item.producer());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,25 +27,5 @@ package com.iluwatar.producer.consumer;
|
||||
/**
|
||||
* Class take part of an {@link Producer}-{@link Consumer} exchange.
|
||||
*/
|
||||
public class Item {
|
||||
|
||||
private final String producer;
|
||||
|
||||
private final int id;
|
||||
|
||||
public Item(String producer, int id) {
|
||||
this.id = id;
|
||||
this.producer = producer;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getProducer() {
|
||||
|
||||
return producer;
|
||||
}
|
||||
|
||||
public record Item(String producer, int id) {
|
||||
}
|
||||
|
||||
@@ -27,23 +27,7 @@ package com.iluwatar.registry;
|
||||
/**
|
||||
* Customer entity used in registry pattern example.
|
||||
*/
|
||||
public class Customer {
|
||||
|
||||
private final String id;
|
||||
private final String name;
|
||||
|
||||
public Customer(String id, String name) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public record Customer(String id, String name) {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
|
||||
@@ -45,7 +45,7 @@ public final class CustomerRegistry {
|
||||
}
|
||||
|
||||
public Customer addCustomer(Customer customer) {
|
||||
return customerMap.put(customer.getId(), customer);
|
||||
return customerMap.put(customer.id(), customer);
|
||||
}
|
||||
|
||||
public Customer getCustomer(String id) {
|
||||
|
||||
@@ -50,13 +50,13 @@ class CustomerRegistryTest {
|
||||
|
||||
Customer customerWithId1 = customerRegistry.getCustomer("1");
|
||||
assertNotNull(customerWithId1);
|
||||
assertEquals("1", customerWithId1.getId());
|
||||
assertEquals("john", customerWithId1.getName());
|
||||
assertEquals("1", customerWithId1.id());
|
||||
assertEquals("john", customerWithId1.name());
|
||||
|
||||
Customer customerWithId2 = customerRegistry.getCustomer("2");
|
||||
assertNotNull(customerWithId2);
|
||||
assertEquals("2", customerWithId2.getId());
|
||||
assertEquals("julia", customerWithId2.getName());
|
||||
assertEquals("2", customerWithId2.id());
|
||||
assertEquals("julia", customerWithId2.name());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -37,21 +37,11 @@ import java.util.List;
|
||||
*
|
||||
* @author George Aristy (george.aristy@gmail.com)
|
||||
*/
|
||||
public final class FindCustomer implements BusinessOperation<String> {
|
||||
private final String customerId;
|
||||
private final Deque<BusinessException> errors;
|
||||
|
||||
/**
|
||||
* Ctor.
|
||||
*
|
||||
* @param customerId the final result of the remote operation
|
||||
* @param errors the errors to throw before returning {@code customerId}
|
||||
*/
|
||||
public record FindCustomer(String customerId, Deque<BusinessException> errors) implements BusinessOperation<String> {
|
||||
public FindCustomer(String customerId, BusinessException... errors) {
|
||||
this.customerId = customerId;
|
||||
this.errors = new ArrayDeque<>(List.of(errors));
|
||||
this(customerId, new ArrayDeque<>(List.of(errors)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String perform() throws BusinessException {
|
||||
if (!this.errors.isEmpty()) {
|
||||
|
||||
+5
-16
@@ -27,26 +27,15 @@ package com.iluwatar.separatedinterface.invoice;
|
||||
/**
|
||||
* InvoiceGenerator class generates an invoice, accepting the product cost and calculating the total
|
||||
* price payable inclusive tax (calculated by {@link TaxCalculator}).
|
||||
*
|
||||
*/
|
||||
public class InvoiceGenerator {
|
||||
|
||||
/**
|
||||
public record InvoiceGenerator(double amount, TaxCalculator taxCalculator) {
|
||||
/** TaxCalculator description:
|
||||
* The TaxCalculator interface to calculate the payable tax.
|
||||
*/
|
||||
private final TaxCalculator taxCalculator;
|
||||
|
||||
/**
|
||||
* Amount description:
|
||||
* The base product amount without tax.
|
||||
*/
|
||||
private final double amount;
|
||||
|
||||
public InvoiceGenerator(double amount, TaxCalculator taxCalculator) {
|
||||
this.amount = amount;
|
||||
this.taxCalculator = taxCalculator;
|
||||
}
|
||||
|
||||
public double getAmountWithTax() {
|
||||
return amount + taxCalculator.calculate(amount);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,27 @@
|
||||
/*
|
||||
* This project is licensed under the MIT license. Module model-view-viewmodel is using ZK framework licensed under LGPL (see lgpl-3.0.txt).
|
||||
*
|
||||
* The MIT License
|
||||
* Copyright © 2014-2022 Ilkka Seppälä
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
package com.iluwatar.servicetoworker;
|
||||
|
||||
import com.iluwatar.model.view.controller.Fatigue;
|
||||
@@ -27,9 +51,9 @@ public class Action {
|
||||
* @param command the command
|
||||
*/
|
||||
public void updateModel(Command command) {
|
||||
setFatigue(command.getFatigue());
|
||||
setHealth(command.getHealth());
|
||||
setNourishment(command.getNourishment());
|
||||
setFatigue(command.fatigue());
|
||||
setHealth(command.health());
|
||||
setNourishment(command.nourishment());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,3 +1,27 @@
|
||||
/*
|
||||
* This project is licensed under the MIT license. Module model-view-viewmodel is using ZK framework licensed under LGPL (see lgpl-3.0.txt).
|
||||
*
|
||||
* The MIT License
|
||||
* Copyright © 2014-2022 Ilkka Seppälä
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
package com.iluwatar.servicetoworker;
|
||||
|
||||
import com.iluwatar.model.view.controller.Fatigue;
|
||||
|
||||
@@ -1,32 +1,40 @@
|
||||
/*
|
||||
* This project is licensed under the MIT license. Module model-view-viewmodel is using ZK framework licensed under LGPL (see lgpl-3.0.txt).
|
||||
*
|
||||
* The MIT License
|
||||
* Copyright © 2014-2022 Ilkka Seppälä
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
package com.iluwatar.servicetoworker;
|
||||
|
||||
import com.iluwatar.model.view.controller.Fatigue;
|
||||
import com.iluwatar.model.view.controller.Health;
|
||||
import com.iluwatar.model.view.controller.Nourishment;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* The type Command.
|
||||
* Instantiates a new Command.
|
||||
*
|
||||
* @param fatigue the fatigue
|
||||
* @param health the health
|
||||
* @param nourishment the nourishment
|
||||
*/
|
||||
public class Command {
|
||||
|
||||
@Getter
|
||||
private final Fatigue fatigue;
|
||||
@Getter
|
||||
private final Health health;
|
||||
@Getter
|
||||
private final Nourishment nourishment;
|
||||
|
||||
/**
|
||||
* Instantiates a new Command.
|
||||
*
|
||||
* @param fatigue the fatigue
|
||||
* @param health the health
|
||||
* @param nourishment the nourishment
|
||||
*/
|
||||
public Command(Fatigue fatigue, Health health, Nourishment nourishment) {
|
||||
this.fatigue = fatigue;
|
||||
this.health = health;
|
||||
this.nourishment = nourishment;
|
||||
}
|
||||
public record Command(Fatigue fatigue, Health health, Nourishment nourishment) {
|
||||
}
|
||||
|
||||
@@ -1,3 +1,27 @@
|
||||
/*
|
||||
* This project is licensed under the MIT license. Module model-view-viewmodel is using ZK framework licensed under LGPL (see lgpl-3.0.txt).
|
||||
*
|
||||
* The MIT License
|
||||
* Copyright © 2014-2022 Ilkka Seppälä
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
package com.iluwatar.servicetoworker;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -1,3 +1,27 @@
|
||||
/*
|
||||
* This project is licensed under the MIT license. Module model-view-viewmodel is using ZK framework licensed under LGPL (see lgpl-3.0.txt).
|
||||
*
|
||||
* The MIT License
|
||||
* Copyright © 2014-2022 Ilkka Seppälä
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
package com.iluwatar.servicetoworker;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@@ -1,3 +1,27 @@
|
||||
/*
|
||||
* This project is licensed under the MIT license. Module model-view-viewmodel is using ZK framework licensed under LGPL (see lgpl-3.0.txt).
|
||||
*
|
||||
* The MIT License
|
||||
* Copyright © 2014-2022 Ilkka Seppälä
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
package com.iluwatar.servicetoworker;
|
||||
|
||||
import com.iluwatar.model.view.controller.Fatigue;
|
||||
|
||||
@@ -1,3 +1,27 @@
|
||||
/*
|
||||
* This project is licensed under the MIT license. Module model-view-viewmodel is using ZK framework licensed under LGPL (see lgpl-3.0.txt).
|
||||
*
|
||||
* The MIT License
|
||||
* Copyright © 2014-2022 Ilkka Seppälä
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
package com.iluwatar.servicetoworker;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
Reference in New Issue
Block a user