diff --git a/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/AdapterPatternDriver.java b/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/AdapterPatternDriver.java deleted file mode 100644 index 9f696a5f40..0000000000 --- a/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/AdapterPatternDriver.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.baeldung.adapter; - -import static com.baeldung.util.LoggerUtil.LOG; - -public class AdapterPatternDriver { - - public static void main(String args[]) { - Movable bugattiVeyron = new BugattiVeyron(); - MovableAdapter bugattiVeyronAdapter = new MovableAdapterImpl(bugattiVeyron); - LOG.info("Bugatti Veyron Super Sport's top speed is " + bugattiVeyronAdapter.getSpeed() + " Kmph."); - - Movable mcLaren = new McLaren(); - MovableAdapter mcLarenAdapter = new MovableAdapterImpl(mcLaren); - LOG.info("McLaren F1 top speed is " + mcLarenAdapter.getSpeed() + " Kmph."); - - Movable astonMartin = new AstonMartin(); - MovableAdapter astonMartinAdapter = new MovableAdapterImpl(astonMartin); - LOG.info("McLaren F1 top speed is " + astonMartinAdapter.getSpeed() + " Kmph."); - } -} diff --git a/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/AstonMartin.java b/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/AstonMartin.java deleted file mode 100644 index c6aa0c525a..0000000000 --- a/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/AstonMartin.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.baeldung.adapter; - -public class AstonMartin implements Movable { - @Override - public double getSpeed() { - return 220; - } -} diff --git a/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/BugattiVeyron.java b/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/BugattiVeyron.java deleted file mode 100644 index e7d47d138a..0000000000 --- a/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/BugattiVeyron.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.baeldung.adapter; - -public class BugattiVeyron implements Movable { - @Override - public double getSpeed() { - return 268; - } -} diff --git a/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/IteratorAdapter.java b/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/IteratorAdapter.java new file mode 100644 index 0000000000..0abf333068 --- /dev/null +++ b/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/IteratorAdapter.java @@ -0,0 +1,24 @@ +package com.baeldung.adapter; + +import java.util.Enumeration; +import java.util.Iterator; + +public class IteratorAdapter implements Iterator { + + private Enumeration enumeration; + + public IteratorAdapter(Enumeration enumeration) { + this.enumeration = enumeration; + } + + @Override + public boolean hasNext() { + return enumeration.hasMoreElements(); + } + + @Override + public E next() { + return enumeration.nextElement(); + } + +} diff --git a/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/McLaren.java b/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/McLaren.java deleted file mode 100644 index 4ca1cde856..0000000000 --- a/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/McLaren.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.baeldung.adapter; - -public class McLaren implements Movable { - @Override - public double getSpeed() { - return 241; - } -} diff --git a/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/Movable.java b/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/Movable.java deleted file mode 100644 index bec0bee568..0000000000 --- a/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/Movable.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.baeldung.adapter; - -public interface Movable { - // returns speed in MPH - double getSpeed(); -} \ No newline at end of file diff --git a/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/MovableAdapter.java b/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/MovableAdapter.java deleted file mode 100644 index 8d529e7b13..0000000000 --- a/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/MovableAdapter.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.baeldung.adapter; - -public interface MovableAdapter { - // returns speed in KMPH - double getSpeed(); -} diff --git a/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/MovableAdapterImpl.java b/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/MovableAdapterImpl.java deleted file mode 100644 index 8f18cc9942..0000000000 --- a/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/MovableAdapterImpl.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.baeldung.adapter; - -public class MovableAdapterImpl implements MovableAdapter { - private Movable luxuryCars; - - public MovableAdapterImpl(Movable luxuryCars) { - this.luxuryCars = luxuryCars; - } - - @Override - public double getSpeed() { - double mph = luxuryCars.getSpeed(); - return convertMPHtoKMPH(mph); - } - - private double convertMPHtoKMPH(double mph) { - return mph * 1.60934; - } -} diff --git a/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/StringTokenizerIteratorAdapter.java b/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/StringTokenizerIteratorAdapter.java new file mode 100644 index 0000000000..36c17b2609 --- /dev/null +++ b/patterns-modules/design-patterns-structural/src/main/java/com/baeldung/adapter/StringTokenizerIteratorAdapter.java @@ -0,0 +1,29 @@ +package com.baeldung.adapter; + +import java.util.Iterator; +import java.util.StringTokenizer; + +public class StringTokenizerIteratorAdapter extends StringTokenizer implements Iterator { + + public StringTokenizerIteratorAdapter(final String str, final String delim, final boolean returnDelims) { + super(str, delim, returnDelims); + } + + public StringTokenizerIteratorAdapter(final String str, final String delim) { + super(str, delim); + } + + public StringTokenizerIteratorAdapter(final String str) { + super(str); + } + + @Override + public boolean hasNext() { + return hasMoreTokens(); + } + + @Override + public String next() { + return nextToken(); + } +} diff --git a/patterns-modules/design-patterns-structural/src/test/java/com/baeldung/adapter/AdapterPatternIntegrationTest.java b/patterns-modules/design-patterns-structural/src/test/java/com/baeldung/adapter/AdapterPatternIntegrationTest.java deleted file mode 100644 index 536caf7341..0000000000 --- a/patterns-modules/design-patterns-structural/src/test/java/com/baeldung/adapter/AdapterPatternIntegrationTest.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.baeldung.adapter; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -public class AdapterPatternIntegrationTest { - @Test - public void givenMovableAdapter_WhenConvertingMPHToKMPH_thenSuccessfullyConverted() { - Movable bugattiVeyron = new BugattiVeyron(); - MovableAdapter bugattiVeyronAdapter = new MovableAdapterImpl(bugattiVeyron); - assertEquals(bugattiVeyronAdapter.getSpeed(), 431.30312, 0.00001); - - Movable mcLaren = new McLaren(); - MovableAdapter mcLarenAdapter = new MovableAdapterImpl(mcLaren); - assertEquals(mcLarenAdapter.getSpeed(), 387.85094, 0.00001); - - Movable astonMartin = new AstonMartin(); - MovableAdapter astonMartinAdapter = new MovableAdapterImpl(astonMartin); - assertEquals(astonMartinAdapter.getSpeed(), 354.0548, 0.00001); - } -} - diff --git a/patterns-modules/design-patterns-structural/src/test/java/com/baeldung/adapter/IteratorAdapterUnitTest.java b/patterns-modules/design-patterns-structural/src/test/java/com/baeldung/adapter/IteratorAdapterUnitTest.java new file mode 100644 index 0000000000..19de6c92ba --- /dev/null +++ b/patterns-modules/design-patterns-structural/src/test/java/com/baeldung/adapter/IteratorAdapterUnitTest.java @@ -0,0 +1,34 @@ +package com.baeldung.adapter; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; +import java.util.StringTokenizer; +import org.junit.jupiter.api.Test; + +class IteratorAdapterUnitTest { + + public static final String STRING_DATA = "Welcome to baeldung.com"; + private final StringTokenizer tokenizer = new StringTokenizer(STRING_DATA); + private final Iterator tokenizerAdapter = new StringTokenizerIteratorAdapter(STRING_DATA); + private final List expectedTokensForString = Arrays.asList("Welcome", "to", "baeldung.com"); + + @Test + void givenTokenizer_thenAdapterProducesCorrectResult() { + List actualTokens = new ArrayList<>(); + new IteratorAdapter(tokenizer).forEachRemaining(s -> actualTokens.add((String) s)); + assertEquals(expectedTokensForString, actualTokens); + } + + @Test + void givenTokenizerAdapter_thenIteratorProducesCorrectResult() { + List actualTokens = new ArrayList<>(); + tokenizerAdapter.forEachRemaining(actualTokens::add); + assertEquals(expectedTokensForString, actualTokens); + } + + +} \ No newline at end of file