001 package org.nakedobjects.applib.fixtures;
002
003 /**
004 * Enumerates the different types of {@link InstallableFixture fixture}s supported.
005 *
006 * @see InstallableFixture#getType()
007 */
008 public enum FixtureType {
009 /**
010 * A fixture that installs data (either reference data or operational data)
011 * into an object store.
012 *
013 * <p>
014 * Some object stores are in-memory only, in which case these will always want
015 * fixtures of this type to be installed. However, for object stores that
016 * persist the data (such as XML or to an RDBMS), these typically do <i>not</i>
017 * want data fixtures run (except possibly for the very first time booted to
018 * initially seed them).
019 */
020 OBJECT_STORE,
021 /**
022 * Analogous to {@link FixtureType#DATA}, but for fixtures (in particular, the
023 * {@link PerspectiveFixture}) that are used to setup {@link Profile}s and their
024 * {@link Perspective}s.
025 *
026 * @see UserProfileService
027 */
028 USER_PROFILE,
029 /**
030 * A fixture that neither installs data into the object store nor perspectives
031 * into the {@link UserProfileService}.
032 *
033 * <p>
034 * Fixtures of this type are always installed. Typical examples are:
035 * <ul>
036 * <li> composite fixtures that just aggregate other fixtures
037 * <li> fixtures that set up the date/time (see {@link DateFixture})
038 * <li> fixtures that specify the user to logon as (see {@link LogonFixture}).
039 * </ul>
040 */
041 OTHER;
042 }