package replicant;

import javax.annotation.Nonnull;

/**
 * Interface implemented by imitations that need to be linked. This is a contract between an entity and the
 * entity repository. Note: the methods on this interface should only be invoked by the repository and not by users
 * of the entity repository.
 */
public interface Linkable
{
  /**
   * Resolve any references to related entities.
   */
  void link();

  /**
   * Link specified object if it is linkable.
   *
   * @param object the object to link if linkable.
   */
  static void link( @Nonnull final Object object )
  {
    if ( object instanceof Linkable )
    {
      final Linkable linkable = (Linkable) object;
      linkable.link();
    }
  }
}

@@ -83,17 +83,15 @@
  by 
-imitation
+entitie
 s th
@@ -115,83 +115,13 @@
 ked.
- This is a contract between an entity and the%0A * entity repository. Note: t
+%0A * T
 he m
@@ -125,17 +125,16 @@
 e method
-s
  on this
@@ -179,62 +179,48 @@
 he r
-epository and not by users%0A * of the entity repository
+untime and not directly by external code
 .%0A *

Update description