code: <T> ActorProtocolActor<T> actorProtocolFor(
            final Class<T> protocol,
            final Definition definition,
            final Actor parent,
            final Address maybeAddress,
            final Mailbox maybeMailbox,
            final Supervisor maybeSupervisor,
            final Logger logger) {
  
      assertProtocolCompliance(protocol);
  
      try {
        final Actor actor = createRawActor(definition, parent, maybeAddress, maybeMailbox, maybeSupervisor, logger);
        final T protocolActor = actorProxyFor(protocol, actor, actor.lifeCycle.environment.mailbox);
        return new ActorProtocolActor<T>(actor, protocolActor);
      } catch (Exception e) {
        e.printStackTrace();
        world.defaultLogger().log("vlingo/actors: FAILED: " + e.getMessage(), e);
        return null;
      }
    }
docs: Answers the ActorProtocolActor for the newly created Actor instance. (INTERNAL ONLY)
  @param <T> the protocol type
  @param protocol the {@code Class<T>} protocol of the Actor
  @param definition the Definition of the Actor
  @param parent the Actor parent of this Actor
  @param maybeAddress the possible Address of this Actor
  @param maybeMailbox the possible Mailbox of this Actor
  @param maybeSupervisor the possible Supervisor of this Actor
  @param logger the Logger of this Actor
  @return ActorProtocolActor