@@ -0,0 +1,2173 @@
+/*%0A * The MIT License%0A *%0A * Copyright (c) 2016 Marcelo %22Ataxexe%22 Guimar%C3%A3es %3Cataxexe@devnull.tools%3E%0A *%0A * Permission  is hereby granted, free of charge, to any person obtaining%0A * a  copy  of  this  software  and  associated  documentation files (the%0A * %22Software%22),  to  deal  in the Software without restriction, including%0A * without  limitation  the  rights to use, copy, modify, merge, publish,%0A * distribute,  sublicense,  and/or  sell  copies of the Software, and to%0A * permit  persons to whom the Software is furnished to do so, subject to%0A * the following conditions:%0A * The  above  copyright  notice  and  this  permission  notice  shall be%0A * included  in  all  copies  or  substantial  portions  of the Software.%0A *%0A * THE  SOFTWARE  IS  PROVIDED  %22AS  IS%22,  WITHOUT  WARRANTY OF ANY KIND,%0A * EXPRESS  OR  IMPLIED,  INCLUDING  BUT NOT LIMITED TO THE WARRANTIES OF%0A * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.%0A * IN  NO  EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY%0A * CLAIM,  DAMAGES  OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,%0A * TORT  OR  OTHERWISE,  ARISING  FROM,  OUT OF OR IN CONNECTION WITH THE%0A * SOFTWARE   OR   THE   USE   OR   OTHER   DEALINGS  IN  THE  SOFTWARE.%0A */%0A%0Apackage tools.devnull.boteco;%0A%0A/**%0A * A default implementation of a MessageLocation%0A */%0Apublic class UserMessageLocation implements MessageLocation %7B%0A%0A  private final String channel;%0A  private final String target;%0A%0A  public UserMessageLocation(String channel, String target) %7B%0A    this.channel = channel;%0A    this.target = target;%0A  %7D%0A%0A  @Override%0A  public int hashCode() %7B%0A    return (channel + target).hashCode();%0A  %7D%0A%0A  @Override%0A  public boolean equals(Object obj) %7B%0A    return obj instanceof MessageLocation &&%0A        channel.equals(((MessageLocation) obj).channel()) &&%0A        target.equals(((MessageLocation) obj).target());%0A  %7D%0A%0A  @Override%0A  public String channel() %7B%0A    return channel;%0A  %7D%0A%0A  @Override%0A  public String target() %7B%0A    return target;%0A  %7D%0A%0A  public static UserMessageLocation of(MessageLocation destination) %7B%0A    return new UserMessageLocation(destination.channel(), destination.target());%0A  %7D%0A%0A%7D%0A

Rename class