Move StringPool to libandroidfw

Test: verified affected tests pass
Bug: 232940948
Change-Id: I22089893d7e5013f759c39ce190bec07fa6435db
diff --git a/tools/aapt2/Diagnostics.h b/tools/aapt2/Diagnostics.h
index 30deb55..c89db72 100644
--- a/tools/aapt2/Diagnostics.h
+++ b/tools/aapt2/Diagnostics.h
@@ -13,86 +13,25 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
-#ifndef AAPT_DIAGNOSTICS_H
-#define AAPT_DIAGNOSTICS_H
+#ifndef AAPT_DIAGNOSTICS_H_
+#define AAPT_DIAGNOSTICS_H_
 
 #include <iostream>
 #include <sstream>
 #include <string>
 
 #include "android-base/macros.h"
+#include "androidfw/IDiagnostics.h"
+#include "androidfw/Source.h"
 #include "androidfw/StringPiece.h"
-
-#include "Source.h"
 #include "util/Util.h"
 
 namespace aapt {
-
-struct DiagMessageActual {
-  Source source;
-  std::string message;
-};
-
-struct DiagMessage {
- public:
-  DiagMessage() = default;
-
-  explicit DiagMessage(const android::StringPiece& src) : source_(src) {}
-
-  explicit DiagMessage(const Source& src) : source_(src) {}
-
-  explicit DiagMessage(size_t line) : source_(Source().WithLine(line)) {}
-
-  template <typename T>
-  DiagMessage& operator<<(const T& value) {
-    message_ << value;
-    return *this;
-  }
-
-  DiagMessageActual Build() const {
-    return DiagMessageActual{source_, message_.str()};
-  }
-
- private:
-  Source source_;
-  std::stringstream message_;
-};
-
-template <>
-inline DiagMessage& DiagMessage::operator<<(const ::std::u16string& value) {
-  message_ << android::StringPiece16(value);
-  return *this;
-}
-
-struct IDiagnostics {
-  virtual ~IDiagnostics() = default;
-
-  enum class Level { Note, Warn, Error };
-
-  virtual void Log(Level level, DiagMessageActual& actualMsg) = 0;
-
-  virtual void Error(const DiagMessage& message) {
-    DiagMessageActual actual = message.Build();
-    Log(Level::Error, actual);
-  }
-
-  virtual void Warn(const DiagMessage& message) {
-    DiagMessageActual actual = message.Build();
-    Log(Level::Warn, actual);
-  }
-
-  virtual void Note(const DiagMessage& message) {
-    DiagMessageActual actual = message.Build();
-    Log(Level::Note, actual);
-  }
-};
-
-class StdErrDiagnostics : public IDiagnostics {
+class StdErrDiagnostics : public android::IDiagnostics {
  public:
   StdErrDiagnostics() = default;
 
-  void Log(Level level, DiagMessageActual& actual_msg) override {
+  void Log(Level level, android::DiagMessageActual& actual_msg) override {
     const char* tag;
 
     switch (level) {
@@ -125,31 +64,6 @@
   DISALLOW_COPY_AND_ASSIGN(StdErrDiagnostics);
 };
 
-class SourcePathDiagnostics : public IDiagnostics {
- public:
-  SourcePathDiagnostics(const Source& src, IDiagnostics* diag)
-      : source_(src), diag_(diag) {}
-
-  void Log(Level level, DiagMessageActual& actual_msg) override {
-    actual_msg.source.path = source_.path;
-    diag_->Log(level, actual_msg);
-    if (level == Level::Error) {
-      error = true;
-    }
-  }
-
-  bool HadError() {
-    return error;
-  }
-
- private:
-  Source source_;
-  IDiagnostics* diag_;
-  bool error = false;
-
-  DISALLOW_COPY_AND_ASSIGN(SourcePathDiagnostics);
-};
-
 }  // namespace aapt
 
-#endif /* AAPT_DIAGNOSTICS_H */
+#endif /* AAPT_DIAGNOSTICS_H_ */