From 991ba320a6b2cde1b892e87ebca77be249884560 Mon Sep 17 00:00:00 2001 From: baislsl Date: Mon, 19 Feb 2018 22:01:14 +0800 Subject: [PATCH] Improve Javadoc --- .../main/java/com/iluwatar/caching/App.java | 6 +-- .../com/iluwatar/dao/InMemoryCustomerDao.java | 2 +- .../main/java/com/iluwatar/databus/App.java | 3 +- .../src/main/java/com/iluwatar/eda/App.java | 2 +- .../java/com/iluwatar/factorykit/App.java | 2 +- .../java/com/iluwatar/featuretoggle/App.java | 2 +- .../featuretoggle/pattern/Service.java | 2 +- .../PropertiesFeatureToggleVersion.java | 2 +- .../TieredFeatureToggleVersion.java | 2 +- .../guarded/suspension/GuardedQueue.java | 2 +- .../com/iluwatar/halfsynchalfasync/App.java | 14 +++---- .../main/java/com/iluwatar/hexagonal/App.java | 10 ++--- .../domainapp/webapp/SimpleApplication.java | 18 ++++----- .../iluwatar/observer/generic/Observable.java | 2 +- .../java/com/iluwatar/reactor/app/App.java | 37 +++++++++++-------- .../com/iluwatar/reactor/app/AppClient.java | 2 +- .../reactor/framework/AbstractNioChannel.java | 2 +- .../reactor/framework/Dispatcher.java | 2 +- .../framework/SameThreadDispatcher.java | 2 +- .../framework/ThreadPoolDispatcher.java | 2 +- .../reader/writer/lock/ReaderWriterLock.java | 4 +- .../acquisition/is/initialization/App.java | 4 +- .../com/iluwatar/servicelocator/Service.java | 2 +- .../main/java/com/iluwatar/singleton/App.java | 12 +++--- .../ThreadSafeDoubleCheckLocking.java | 4 +- .../java/com/iluwatar/stepbuilder/App.java | 12 +++--- .../java/com/iluwatar/threadpool/Worker.java | 2 +- .../java/com/iluwatar/throttling/App.java | 1 - .../com/iluwatar/value/object/HeroStat.java | 4 +- .../iluwatar/value/object/HeroStatTest.java | 7 +++- 30 files changed, 88 insertions(+), 80 deletions(-) diff --git a/caching/src/main/java/com/iluwatar/caching/App.java b/caching/src/main/java/com/iluwatar/caching/App.java index 589b26245..fced38b59 100644 --- a/caching/src/main/java/com/iluwatar/caching/App.java +++ b/caching/src/main/java/com/iluwatar/caching/App.java @@ -52,12 +52,12 @@ import org.slf4j.LoggerFactory; * whether the data is coming from the cache or the DB (i.e. separation of concern). The AppManager * ({@link AppManager}) handles the transaction of data to-and-from the underlying data store * (depending on the preferred caching policy/strategy). - * - * App --> AppManager --> CacheStore/LRUCache/CachingPolicy --> DBManager + *

+ * {@literal App --> AppManager --> CacheStore/LRUCache/CachingPolicy --> DBManager} *

* * @see CacheStore - * @See LRUCache + * @see LruCache * @see CachingPolicy * */ diff --git a/dao/src/main/java/com/iluwatar/dao/InMemoryCustomerDao.java b/dao/src/main/java/com/iluwatar/dao/InMemoryCustomerDao.java index 38acca60f..947da23ca 100644 --- a/dao/src/main/java/com/iluwatar/dao/InMemoryCustomerDao.java +++ b/dao/src/main/java/com/iluwatar/dao/InMemoryCustomerDao.java @@ -31,7 +31,7 @@ import java.util.stream.Stream; /** * An in memory implementation of {@link CustomerDao}, which stores the customers in JVM memory * and data is lost when the application exits. - *
+ *
* This implementation is useful as temporary database or for testing. */ public class InMemoryCustomerDao implements CustomerDao { diff --git a/data-bus/src/main/java/com/iluwatar/databus/App.java b/data-bus/src/main/java/com/iluwatar/databus/App.java index 748bb6af0..b599bdc57 100644 --- a/data-bus/src/main/java/com/iluwatar/databus/App.java +++ b/data-bus/src/main/java/com/iluwatar/databus/App.java @@ -34,8 +34,7 @@ import java.time.LocalDateTime; /** * The Data Bus pattern *

- *

{@see http://wiki.c2.com/?DataBusPattern}

- *

+ * @see http://wiki.c2.com/?DataBusPattern *

The Data-Bus pattern provides a method where different parts of an application may * pass messages between each other without needing to be aware of the other's existence.

*

Similar to the {@code ObserverPattern}, members register themselves with the {@link DataBus} diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/App.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/App.java index 5ed2b2ad8..c41b0ed5a 100644 --- a/event-driven-architecture/src/main/java/com/iluwatar/eda/App.java +++ b/event-driven-architecture/src/main/java/com/iluwatar/eda/App.java @@ -33,7 +33,7 @@ import com.iluwatar.eda.model.User; /** * An event-driven architecture (EDA) is a framework that orchestrates behavior around the * production, detection and consumption of events as well as the responses they evoke. An event is - * any identifiable occurrence that has significance for system hardware or software.

The + * any identifiable occurrence that has significance for system hardware or software.

The * example below uses an {@link EventDispatcher} to link/register {@link Event} objects to their * respective handlers once an {@link Event} is dispatched, it's respective handler is invoked and * the {@link Event} is handled accordingly. diff --git a/factory-kit/src/main/java/com/iluwatar/factorykit/App.java b/factory-kit/src/main/java/com/iluwatar/factorykit/App.java index 03a4ece83..766370111 100644 --- a/factory-kit/src/main/java/com/iluwatar/factorykit/App.java +++ b/factory-kit/src/main/java/com/iluwatar/factorykit/App.java @@ -45,7 +45,7 @@ public class App { /** * Program entry point. * - * @param args @param args command line args + * @param args command line args */ public static void main(String[] args) { WeaponFactory factory = WeaponFactory.factory(builder -> { diff --git a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/App.java b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/App.java index 97c184fec..351936b2c 100644 --- a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/App.java +++ b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/App.java @@ -67,7 +67,7 @@ public class App { * @see UserGroup * @see Service * @see PropertiesFeatureToggleVersion - * @see com.iluwatar.featuretoggle.pattern.tieredversion.TieredFeatureToggleVersion; + * @see com.iluwatar.featuretoggle.pattern.tieredversion.TieredFeatureToggleVersion */ public static void main(String[] args) { diff --git a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/Service.java b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/Service.java index 9650b9f67..284ccf2ab 100644 --- a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/Service.java +++ b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/Service.java @@ -47,7 +47,7 @@ public interface Service { /** * Returns if the welcome message to be displayed will be the enhanced version. * - * @return Boolean {@value true} if enhanced. + * @return Boolean {@code true} if enhanced. */ boolean isEnhanced(); diff --git a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersion.java b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersion.java index a474423db..1ded334ec 100644 --- a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersion.java +++ b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersion.java @@ -91,7 +91,7 @@ public class PropertiesFeatureToggleVersion implements Service { * see the value of the boolean that was set in the constructor * {@link PropertiesFeatureToggleVersion#PropertiesFeatureToggleVersion(Properties)} * - * @return Boolean value {@value true} if enhanced. + * @return Boolean value {@code true} if enhanced. */ @Override public boolean isEnhanced() { diff --git a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersion.java b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersion.java index 42b7412c0..887c9f663 100644 --- a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersion.java +++ b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersion.java @@ -65,7 +65,7 @@ public class TieredFeatureToggleVersion implements Service { * is driven by the user group. This method is a little redundant. However can be used to show that there is an * enhanced version available. * - * @return Boolean value {@value true} if enhanced. + * @return Boolean value {@code true} if enhanced. */ @Override public boolean isEnhanced() { diff --git a/guarded-suspension/src/main/java/com/iluwatar/guarded/suspension/GuardedQueue.java b/guarded-suspension/src/main/java/com/iluwatar/guarded/suspension/GuardedQueue.java index bf6142dd9..e75fc6c49 100644 --- a/guarded-suspension/src/main/java/com/iluwatar/guarded/suspension/GuardedQueue.java +++ b/guarded-suspension/src/main/java/com/iluwatar/guarded/suspension/GuardedQueue.java @@ -32,7 +32,7 @@ import java.util.Queue; * Guarded Queue is an implementation for Guarded Suspension Pattern * Guarded suspension pattern is used to handle a situation when you want to execute a method * on an object which is not in a proper state. - * @see http://java-design-patterns.com/patterns/guarded-suspension/ + * @see http://java-design-patterns.com/patterns/guarded-suspension/ */ public class GuardedQueue { private static final Logger LOGGER = LoggerFactory.getLogger(GuardedQueue.class); diff --git a/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/App.java b/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/App.java index bf35416ca..90cb5ecbf 100644 --- a/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/App.java +++ b/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/App.java @@ -33,31 +33,31 @@ import java.util.concurrent.LinkedBlockingQueue; * {@link AsyncTask} and {@link AsynchronousService}. * *

- * PROBLEM
+ * PROBLEM
* A concurrent system have a mixture of short duration, mid duration and long duration tasks. Mid * or long duration tasks should be performed asynchronously to meet quality of service * requirements. * *

- * INTENT
+ * INTENT
* The intent of this pattern is to separate the the synchronous and asynchronous processing in the * concurrent application by introducing two intercommunicating layers - one for sync and one for * async. This simplifies the programming without unduly affecting the performance. * *

- * APPLICABILITY
+ * APPLICABILITY
* UNIX network subsystems - In operating systems network operations are carried out - * asynchronously with help of hardware level interrupts.
+ * asynchronously with help of hardware level interrupts.
* CORBA - At the asynchronous layer one thread is associated with each socket that is connected * to the client. Thread blocks waiting for CORBA requests from the client. On receiving request it * is inserted in the queuing layer which is then picked up by synchronous layer which processes the - * request and sends response back to the client.
+ * request and sends response back to the client.
* Android AsyncTask framework - Framework provides a way to execute long running blocking * calls, such as downloading a file, in background threads so that the UI thread remains free to - * respond to user inputs.
+ * respond to user inputs.
* *

- * IMPLEMENTATION
+ * IMPLEMENTATION
* The main method creates an asynchronous service which does not block the main thread while the * task is being performed. The main thread continues its work which is similar to Async Method * Invocation pattern. The difference between them is that there is a queuing layer between diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/App.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/App.java index 651498607..6e226a1e1 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/App.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/App.java @@ -50,13 +50,13 @@ import com.iluwatar.hexagonal.sampledata.SampleData; * from the services it uses.

* * The primary ports for the application are console interfaces - * {@link ConsoleAdministration} through which the lottery round is - * initiated and run and {@link ConsoleLottery} that allows players to + * {@link com.iluwatar.hexagonal.administration.ConsoleAdministration} through which the lottery round is + * initiated and run and {@link com.iluwatar.hexagonal.service.ConsoleLottery} that allows players to * submit lottery tickets for the draw.

* - * The secondary ports that application core uses are {@link WireTransfers} - * which is a banking service, {@link LotteryEventLog} that delivers - * eventlog as lottery events occur and {@link LotteryTicketRepository} + * The secondary ports that application core uses are {@link com.iluwatar.hexagonal.banking.WireTransfers} + * which is a banking service, {@link com.iluwatar.hexagonal.eventlog.LotteryEventLog} that delivers + * eventlog as lottery events occur and {@link com.iluwatar.hexagonal.database.LotteryTicketRepository} * that is the storage for the lottery tickets. * */ diff --git a/naked-objects/webapp/src/main/java/domainapp/webapp/SimpleApplication.java b/naked-objects/webapp/src/main/java/domainapp/webapp/SimpleApplication.java index 89d316d20..459e4b7de 100644 --- a/naked-objects/webapp/src/main/java/domainapp/webapp/SimpleApplication.java +++ b/naked-objects/webapp/src/main/java/domainapp/webapp/SimpleApplication.java @@ -51,14 +51,14 @@ import de.agilecoders.wicket.themes.markup.html.bootswatch.BootswatchThemeProvid * See: * *

- * <filter>
- *   <filter-name>wicket</filter-name>
- *    <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
- *    <init-param>
- *      <param-name>applicationClassName</param-name>
- *      <param-value>webapp.SimpleApplication</param-value>
- *    </init-param>
- * </filter>
+ * <filter>
+ *   <filter-name>wicket</filter-name>
+ *    <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
+ *    <init-param>
+ *      <param-name>applicationClassName</param-name>
+ *      <param-value>webapp.SimpleApplication</param-value>
+ *    </init-param>
+ * </filter>
  * 
* */ @@ -69,7 +69,7 @@ public class SimpleApplication extends IsisWicketApplication { /** * uncomment for a (slightly hacky) way of allowing logins using query args, eg: * - * ?user=sven&pass=pass + * {@code ?user=sven&pass=pass} * *

* for demos only, obvious. diff --git a/observer/src/main/java/com/iluwatar/observer/generic/Observable.java b/observer/src/main/java/com/iluwatar/observer/generic/Observable.java index ff204437d..6c14eabec 100644 --- a/observer/src/main/java/com/iluwatar/observer/generic/Observable.java +++ b/observer/src/main/java/com/iluwatar/observer/generic/Observable.java @@ -26,7 +26,7 @@ import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; /** - * Generic observer inspired by Java Generics and Collection by Naftalin & Wadler + * Generic observer inspired by Java Generics and Collection by {@literal Naftalin & Wadler} * * @param Subject * @param Observer diff --git a/reactor/src/main/java/com/iluwatar/reactor/app/App.java b/reactor/src/main/java/com/iluwatar/reactor/app/App.java index 5208dea02..991f14e1f 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/app/App.java +++ b/reactor/src/main/java/com/iluwatar/reactor/app/App.java @@ -39,13 +39,13 @@ import com.iluwatar.reactor.framework.ThreadPoolDispatcher; * Service where it listens on multiple TCP or UDP sockets for incoming log requests. * *

- * INTENT
+ * INTENT
* The Reactor design pattern handles service requests that are delivered concurrently to an * application by one or more clients. The application can register specific handlers for processing * which are called by reactor on specific events. * *

- * PROBLEM
+ * PROBLEM
* Server applications in a distributed system must handle multiple clients that send them service * requests. Following forces need to be resolved: *

* *

- * PARTICIPANTS
+ * PARTICIPANTS
*

- * - *

* The application utilizes single thread to listen for requests on all ports. It does not create a * separate thread for each client, which provides better scalability under load (number of clients * increase). - * - *

* The example uses Java NIO framework to implement the Reactor. * */ diff --git a/reactor/src/main/java/com/iluwatar/reactor/app/AppClient.java b/reactor/src/main/java/com/iluwatar/reactor/app/AppClient.java index 446628769..1ffa9325b 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/app/AppClient.java +++ b/reactor/src/main/java/com/iluwatar/reactor/app/AppClient.java @@ -108,7 +108,7 @@ public class AppClient { * Creates a new TCP logging client. * * @param clientName the name of the client to be sent in logging requests. - * @param port the port on which client will send logging requests. + * @param serverPort the port on which client will send logging requests. */ public TcpLoggingClient(String clientName, int serverPort) { this.clientName = clientName; diff --git a/reactor/src/main/java/com/iluwatar/reactor/framework/AbstractNioChannel.java b/reactor/src/main/java/com/iluwatar/reactor/framework/AbstractNioChannel.java index aa7d703ce..5cfab9a95 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/framework/AbstractNioChannel.java +++ b/reactor/src/main/java/com/iluwatar/reactor/framework/AbstractNioChannel.java @@ -141,7 +141,7 @@ public abstract class AbstractNioChannel { * when this method returns. It will be written when the channel is flushed. * *

- * This method is used by the {@link ChannelHandler} to send reply back to the client.
+ * This method is used by the {@link ChannelHandler} to send reply back to the client.
* Example: * *

diff --git a/reactor/src/main/java/com/iluwatar/reactor/framework/Dispatcher.java b/reactor/src/main/java/com/iluwatar/reactor/framework/Dispatcher.java
index a3fe187a3..1cb50a197 100644
--- a/reactor/src/main/java/com/iluwatar/reactor/framework/Dispatcher.java
+++ b/reactor/src/main/java/com/iluwatar/reactor/framework/Dispatcher.java
@@ -28,7 +28,7 @@ import java.nio.channels.SelectionKey;
  * Represents the event dispatching strategy. When {@link NioReactor} senses any event on the
  * registered {@link AbstractNioChannel}s then it de-multiplexes the event type, read or write or
  * connect, and then calls the {@link Dispatcher} to dispatch the read events. This decouples the
- * I/O processing from application specific processing. 
+ * I/O processing from application specific processing.
* Dispatcher should call the {@link ChannelHandler} associated with the channel on which event * occurred. * diff --git a/reactor/src/main/java/com/iluwatar/reactor/framework/SameThreadDispatcher.java b/reactor/src/main/java/com/iluwatar/reactor/framework/SameThreadDispatcher.java index 3db4f1e9a..41dd0f684 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/framework/SameThreadDispatcher.java +++ b/reactor/src/main/java/com/iluwatar/reactor/framework/SameThreadDispatcher.java @@ -37,7 +37,7 @@ import java.nio.channels.SelectionKey; public class SameThreadDispatcher implements Dispatcher { /** - * Dispatches the read event in the context of caller thread.
+ * Dispatches the read event in the context of caller thread.
* Note this is a blocking call. It returns only after the associated handler has handled the read * event. */ diff --git a/reactor/src/main/java/com/iluwatar/reactor/framework/ThreadPoolDispatcher.java b/reactor/src/main/java/com/iluwatar/reactor/framework/ThreadPoolDispatcher.java index a43a974c9..82fca0206 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/framework/ThreadPoolDispatcher.java +++ b/reactor/src/main/java/com/iluwatar/reactor/framework/ThreadPoolDispatcher.java @@ -47,7 +47,7 @@ public class ThreadPoolDispatcher implements Dispatcher { /** * Submits the work of dispatching the read event to worker pool, where it gets picked up by - * worker threads.
+ * worker threads.
* Note that this is a non-blocking call and returns immediately. It is not guaranteed that the * event has been handled by associated handler. */ diff --git a/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/ReaderWriterLock.java b/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/ReaderWriterLock.java index b377b2273..f0f5a0090 100644 --- a/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/ReaderWriterLock.java +++ b/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/ReaderWriterLock.java @@ -50,9 +50,9 @@ public class ReaderWriterLock implements ReadWriteLock { /** * Global mutex is used to indicate that whether reader or writer gets the lock in the moment. *

- * 1. When it contains the reference of {@link readerLock}, it means that the lock is acquired by the reader, another + * 1. When it contains the reference of {@link #readerLock}, it means that the lock is acquired by the reader, another * reader can also do the read operation concurrently.
- * 2. When it contains the reference of reference of {@link writerLock}, it means that the lock is acquired by the + * 2. When it contains the reference of reference of {@link #writerLock}, it means that the lock is acquired by the * writer exclusively, no more reader or writer can get the lock. *

* This is the most important field in this class to control the access for reader/writer. diff --git a/resource-acquisition-is-initialization/src/main/java/com/iluwatar/resource/acquisition/is/initialization/App.java b/resource-acquisition-is-initialization/src/main/java/com/iluwatar/resource/acquisition/is/initialization/App.java index 75d5dff27..9817fea44 100644 --- a/resource-acquisition-is-initialization/src/main/java/com/iluwatar/resource/acquisition/is/initialization/App.java +++ b/resource-acquisition-is-initialization/src/main/java/com/iluwatar/resource/acquisition/is/initialization/App.java @@ -33,13 +33,13 @@ import org.slf4j.LoggerFactory; * In RAII resource is tied to object lifetime: resource allocation is done during object creation * while resource deallocation is done during object destruction. *

- * In Java RAII is achieved with try-with-resources statement and interfaces {@link Closeable} and + * In Java RAII is achieved with try-with-resources statement and interfaces {@link java.io.Closeable} and * {@link AutoCloseable}. The try-with-resources statement ensures that each resource is closed at * the end of the statement. Any object that implements {@link java.lang.AutoCloseable}, which * includes all objects which implement {@link java.io.Closeable}, can be used as a resource. * * In this example, {@link SlidingDoor} implements {@link AutoCloseable} and {@link TreasureChest} - * implements {@link Closeable}. Running the example, we can observe that both resources are + * implements {@link java.io.Closeable}. Running the example, we can observe that both resources are * automatically closed. *

* http://docs.oracle.com/javase/7/docs/technotes/guides/language/try-with-resources.html diff --git a/service-locator/src/main/java/com/iluwatar/servicelocator/Service.java b/service-locator/src/main/java/com/iluwatar/servicelocator/Service.java index 006d98ba8..e46e3976a 100644 --- a/service-locator/src/main/java/com/iluwatar/servicelocator/Service.java +++ b/service-locator/src/main/java/com/iluwatar/servicelocator/Service.java @@ -24,7 +24,7 @@ package com.iluwatar.servicelocator; /** * This is going to be the parent service interface which we will use to create our services. All - * services will have a

  • service name
  • unique id
  • execution work flow
  • + * services will have a
    • service name
    • unique id
    • execution work flow
    * * @author saifasif * diff --git a/singleton/src/main/java/com/iluwatar/singleton/App.java b/singleton/src/main/java/com/iluwatar/singleton/App.java index 377c56cca..aa40ee300 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/App.java +++ b/singleton/src/main/java/com/iluwatar/singleton/App.java @@ -28,18 +28,18 @@ import org.slf4j.LoggerFactory; /** * Singleton pattern ensures that the class can have only one existing instance per Java classloader * instance and provides global access to it. - *

    + *

    * One of the risks of this pattern is that bugs resulting from setting a singleton up in a * distributed environment can be tricky to debug, since it will work fine if you debug with a * single classloader. Additionally, these problems can crop up a while after the implementation of * a singleton, since they may start out synchronous and only become async with time, so you it may * not be clear why you are seeing certain changes in behaviour. - *

    + *

    * There are many ways to implement the Singleton. The first one is the eagerly initialized instance * in {@link IvoryTower}. Eager initialization implies that the implementation is thread safe. If * you can afford giving up control of the instantiation moment, then this implementation will suit * you fine. - *

    + *

    * The other option to implement eagerly initialized Singleton is enum based Singleton. The example * is found in {@link EnumIvoryTower}. At first glance the code looks short and simple. However, you * should be aware of the downsides including committing to implementation strategy, extending the @@ -47,16 +47,16 @@ import org.slf4j.LoggerFactory; * Overflow: * http://programmers.stackexchange.com/questions/179386/what-are-the-downsides-of-implementing * -a-singleton-with-javas-enum - *

    + *

    * {@link ThreadSafeLazyLoadedIvoryTower} is a Singleton implementation that is initialized on * demand. The downside is that it is very slow to access since the whole access method is * synchronized. - *

    + *

    * Another Singleton implementation that is initialized on demand is found in * {@link ThreadSafeDoubleCheckLocking}. It is somewhat faster than * {@link ThreadSafeLazyLoadedIvoryTower} since it doesn't synchronize the whole access method but * only the method internals on specific conditions. - *

    + *

    * Yet another way to implement thread safe lazily initialized Singleton can be found in * {@link InitializingOnDemandHolderIdiom}. However, this implementation requires at least Java 8 * API level to work. diff --git a/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java b/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java index 5cfcc1bdc..a7557fda3 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java +++ b/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java @@ -24,9 +24,9 @@ package com.iluwatar.singleton; /** * Double check locking - *

    + *

    * http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html - *

    + *

    * Broken under Java 1.4. * * @author mortezaadi@gmail.com diff --git a/step-builder/src/main/java/com/iluwatar/stepbuilder/App.java b/step-builder/src/main/java/com/iluwatar/stepbuilder/App.java index b5354e04a..309833e37 100644 --- a/step-builder/src/main/java/com/iluwatar/stepbuilder/App.java +++ b/step-builder/src/main/java/com/iluwatar/stepbuilder/App.java @@ -29,16 +29,16 @@ import org.slf4j.LoggerFactory; * Step Builder Pattern * *

    - * Intent
    + * Intent
    * An extension of the Builder pattern that fully guides the user through the creation of the object - * with no chances of confusion.
    + * with no chances of confusion.
    * The user experience will be much more improved by the fact that he will only see the next step * methods available, NO build method until is the right time to build the object. * *

    - * Implementation - *

      + * Implementation
      * The concept is simple: + *
        * *
      • Write creational steps inner classes or interfaces where each method knows what can be * displayed next.
      • @@ -49,13 +49,13 @@ import org.slf4j.LoggerFactory; *
      * *

      - * Applicability
      + * Applicability
      * Use the Step Builder pattern when the algorithm for creating a complex object should be * independent of the parts that make up the object and how they're assembled the construction * process must allow different representations for the object that's constructed when in the * process of constructing the order is important. *

      - * http://rdafbn.blogspot.co.uk/2012/07/step-builder-pattern_28.html + * @see http://rdafbn.blogspot.co.uk/2012/07/step-builder-pattern_28.html */ public class App { diff --git a/thread-pool/src/main/java/com/iluwatar/threadpool/Worker.java b/thread-pool/src/main/java/com/iluwatar/threadpool/Worker.java index 578800108..9f67a82c9 100644 --- a/thread-pool/src/main/java/com/iluwatar/threadpool/Worker.java +++ b/thread-pool/src/main/java/com/iluwatar/threadpool/Worker.java @@ -27,7 +27,7 @@ import org.slf4j.LoggerFactory; /** * - * Worker implements {@link Runnable} and thus can be executed by {@link ExecutorService} + * Worker implements {@link Runnable} and thus can be executed by {@link java.util.concurrent.ExecutorService} * */ public class Worker implements Runnable { diff --git a/throttling/src/main/java/com/iluwatar/throttling/App.java b/throttling/src/main/java/com/iluwatar/throttling/App.java index 2dce68ab9..d6c619359 100644 --- a/throttling/src/main/java/com/iluwatar/throttling/App.java +++ b/throttling/src/main/java/com/iluwatar/throttling/App.java @@ -72,7 +72,6 @@ public class App { /** * Make calls to the B2BService dummy API - * @param service an instance of B2BService */ private static void makeServiceCalls(Tenant tenant) { Throttler timer = new ThrottleTimerImpl(10); diff --git a/value-object/src/main/java/com/iluwatar/value/object/HeroStat.java b/value-object/src/main/java/com/iluwatar/value/object/HeroStat.java index 0274bc47f..b65fb000e 100644 --- a/value-object/src/main/java/com/iluwatar/value/object/HeroStat.java +++ b/value-object/src/main/java/com/iluwatar/value/object/HeroStat.java @@ -25,7 +25,9 @@ package com.iluwatar.value.object; /** * HeroStat is a value object * - * {@link http://docs.oracle.com/javase/8/docs/api/java/lang/doc-files/ValueBased.html} + * @see + * http://docs.oracle.com/javase/8/docs/api/java/lang/doc-files/ValueBased.html + * */ public class HeroStat { diff --git a/value-object/src/test/java/com/iluwatar/value/object/HeroStatTest.java b/value-object/src/test/java/com/iluwatar/value/object/HeroStatTest.java index f19382d4e..9bfe2d396 100644 --- a/value-object/src/test/java/com/iluwatar/value/object/HeroStatTest.java +++ b/value-object/src/test/java/com/iluwatar/value/object/HeroStatTest.java @@ -37,8 +37,11 @@ public class HeroStatTest { /** * Tester for equals() and hashCode() methods of a class. Using guava's EqualsTester. * - * @see http://static.javadoc.io/com.google.guava/guava-testlib/19.0/com/google/common/testing/ - * EqualsTester.html + * @see + * http://static.javadoc.io/com.google.guava/guava-testlib/19.0/com/google/common/testing/EqualsTester.html + * + * + * */ @Test public void testEquals() {