Extend hidl-gen to support generate vts file.

b/30762234

TODO: add regression test.

Change-Id: I1c31fd9a85805cd450ea03cc0ccc750a756d1009
diff --git a/Interface.h b/Interface.h
index a7d9afb..ddff137 100644
--- a/Interface.h
+++ b/Interface.h
@@ -2,6 +2,7 @@
 
 #define INTERFACE_H_
 
+#include "Method.h"
 #include "Scope.h"
 
 #include <utils/KeyedVector.h>
@@ -15,7 +16,7 @@
 struct Interface : public Scope {
     Interface(
             Interface *super,
-            KeyedVector<std::string, Annotation *> *annotations);
+            AnnotationVector *annotations);
 
     void addMethod(Method *method);
 
@@ -25,7 +26,7 @@
 
     const std::vector<Method *> &methods() const;
 
-    const KeyedVector<std::string, Annotation *> &annotations() const;
+    const AnnotationVector &annotations() const;
 
     std::string getCppType(StorageMode mode, std::string *extra) const override;
 
@@ -45,10 +46,12 @@
             const std::string &argName,
             bool isReader) const override;
 
+    status_t emitVtsArgumentType(Formatter &out) const override;
+
 private:
     Interface *mSuperType;
     std::vector<Method *> mMethods;
-    KeyedVector<std::string, Annotation *> *mAnnotationsByName;
+    AnnotationVector *mAnnotationsByName;
 
     DISALLOW_COPY_AND_ASSIGN(Interface);
 };