package org.realityforge.replicant.client;

/**
 * Interface implemented by imitations that need to be linked.
 */
public interface Linkable
{
  /**
   * Resolve any references to related entities.
   */
  void link();

  /**
   * Remove direct references to related entities and mark as unresolved.
   */
  void delink();

  /**
   * Invalidating the entity will remove the references to this entity from the repository and change broker.
   * This makes this entity no longer usable.
   */
  void invalidate();
}

@@ -103,16 +103,206 @@
  linked.
+ This is a contract between an entity and the%0A * entity repository. Note: the methods on this interface should only be invoked by the repository and not by users%0A * of the entity repository.
 %0A */%0Apub

Update the documentation to document that Linkable is the contract between the EntityRepository and the entity