package com.forerunnergames.tools.common;

public final class DefaultMessage implements Message
{
  private final String text;

  public DefaultMessage (final String text)
  {
    Arguments.checkIsNotNull (text, "text");

    this.text = text;
  }

  // Required for network serialization
  protected DefaultMessage ()
  {
    text = null;
  }

  @Override
  public String getText ()
  {
    return text;
  }

  @Override
  public String toString ()
  {
    return String.format ("%1$s: Text: %2$s", getClass ().getSimpleName (), text);
  }
}

package com.forerunnergames.tools.common;

public final class DefaultMessage implements Message
{
  private final String text;

  public DefaultMessage (final String text)
  {
    Arguments.checkIsNotNull (text, "text");

    this.text = text;
  }

  protected DefaultMessage ()
  {
    text = null;
  }

  @Override
  public String getText ()
  {
    return text;
  }

  @Override
  public String toString ()
  {
    return String.format ("%1$s: Text: %2$s", getClass ().getSimpleName (), text);
  }
}

Remove "Required for network serialization".
Remove "Required for network serialization".

Remove "Required for network serialization" comment from DefaultMessage
class' protected constructor. Although network serialization is the only
reason for this protected constructor, the classes are not in the net
package, and don't have access to the @RequiredForNetworkSerialization
annotation. Any classes in the common package should not have anything
to do with networking. If there is a need for a class to be
network-related, it should probably be renamed and moved to the net
package.
