/******************************************************************************
 *                                                                            *
 *                    Copyright 2017 Subterranean Security                    *
 *                                                                            *
 *  Licensed under the Apache License, Version 2.0 (the "License");           *
 *  you may not use this file except in compliance with the License.          *
 *  You may obtain a copy of the License at                                   *
 *                                                                            *
 *      http://www.apache.org/licenses/LICENSE-2.0                            *
 *                                                                            *
 *  Unless required by applicable law or agreed to in writing, software       *
 *  distributed under the License is distributed on an "AS IS" BASIS,         *
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  *
 *  See the License for the specific language governing permissions and       *
 *  limitations under the License.                                            *
 *                                                                            *
 *****************************************************************************/
package com.sandpolis.core.instance;

/**
 * A {@code Store} is designed to provide extremely convenient access to
 * optionally-persistent objects with a static context. {@code Store}s cannot be
 * instantiated and may require external initialization before being used.
 * 
 * @author cilki
 * @since 4.0.0
 */
public abstract class Store {

	/**
	 * Indicates that a {@link Store} initializes itself and no other configuration
	 * is required.
	 * 
	 * @author cilki
	 * @since 5.0.0
	 */
	public static @interface AutoInitializer {
	}

	/**
	 * Indicates that a {@link Store} is must be manually initialized with either
	 * {@code load()} or {@code init()}.
	 * 
	 * @author cilki
	 * @since 5.0.0
	 */
	public static @interface ManualInitializer {
	}

}

@@ -1402,20 +1402,20 @@
 %0A * A %7B@
-code
+link
  Store%7D 
@@ -1623,16 +1623,61 @@
 ng used.
+%3Cbr%3E%0A * %3Cbr%3E%0A * This class is a marker class.
 %0A * %0A * 
@@ -1843,16 +1843,308 @@
 equired.
+%3Cbr%3E%0A%09 * %3Cbr%3E%0A%09 * Recommended usage:%0A%09 * %0A%09 * %3Cpre%3E%0A%09 * %7B@code @AutoInitializer%7D%0A%09 * class ExampleStore extends Store %7B%0A%09 * %0A%09 *     static %7B%0A%09 *         init();%0A%09 *     %7D%0A%09 * %0A%09 *     // Initialize or reinitialize the Store%0A%09 *     public static void init() %7B%0A%09 * %0A%09 *     %7D%0A%09 * %7D%0A%09 * %3C/pre%3E
 %0A%09 * %0A%09 
@@ -2268,19 +2268,16 @@
 k Store%7D
- is
  must be
@@ -2347,16 +2347,318 @@
 init()%7D.
+%3Cbr%3E%0A%09 * %3Cbr%3E%0A%09 * Recommended usage:%0A%09 * %0A%09 * %3Cpre%3E%0A%09 * %7B@code @ManualInitializer%7D%0A%09 * class ExampleStore extends Store %7B%0A%09 * %0A%09 *     // Initialize or reinitialize the Store%0A%09 *     public static void init() %7B%0A%09 * %0A%09 *     %7D%0A%09 *     %0A%09 *     public static void load() %7B%0A%09 * %0A%09 *     %7D%0A%09 * %7D%0A%09 * %3C/pre%3E
 %0A%09 * %0A%09 

Add recommended usages to Store superclass