code: public EnumMap<Level, List<Message>> getMessages() {
          final EnumMap<Level, List<Message>> copyOfMessages = new EnumMap<Level, List<Message>>(Level.class);
          for (final Level level : Level.values()) {
              if (containsMessages(level)) {
                  copyOfMessages.put(level, getMessages(level));
              }
          }
          return copyOfMessages;
      }
docs: Returns a copy of the internal {@link EnumMap} with {@link Message}s distributed by {@link Level}
  
  @return