diff options
author | Mark Spruiell <mes@zeroc.com> | 2003-12-15 18:43:49 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2003-12-15 18:43:49 +0000 |
commit | 3df2dcb4fa8322c22dcfc49328877b541baa1917 (patch) | |
tree | c08f0c95722c6a3c13bfcb9df00da0e76f26b855 /cpp/include/Slice/JavaUtil.h | |
parent | minor fix (diff) | |
download | ice-3df2dcb4fa8322c22dcfc49328877b541baa1917.tar.bz2 ice-3df2dcb4fa8322c22dcfc49328877b541baa1917.tar.xz ice-3df2dcb4fa8322c22dcfc49328877b541baa1917.zip |
adding metadata validation to Java translators
Diffstat (limited to 'cpp/include/Slice/JavaUtil.h')
-rw-r--r-- | cpp/include/Slice/JavaUtil.h | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/cpp/include/Slice/JavaUtil.h b/cpp/include/Slice/JavaUtil.h index 6c247918ac0..3d1405e348b 100644 --- a/cpp/include/Slice/JavaUtil.h +++ b/cpp/include/Slice/JavaUtil.h @@ -27,6 +27,11 @@ public: virtual ~JavaGenerator(); + // + // Validate all metadata in the unit with a "java:" prefix. + // + static void validateMetaData(const UnitPtr&); + protected: JavaGenerator(const std::string&); @@ -96,12 +101,36 @@ protected: const std::string&, bool, int&, bool, const StringList& = StringList()); -protected: - + // + // Find custom sequence metadata. + // static std::string findMetaData(const StringList&); private: + class MetaDataVisitor : public ParserVisitor + { + public: + + virtual bool visitModuleStart(const ModulePtr&); + virtual void visitClassDecl(const ClassDeclPtr&); + virtual bool visitClassDefStart(const ClassDefPtr&); + virtual bool visitExceptionStart(const ExceptionPtr&); + virtual bool visitStructStart(const StructPtr&); + virtual void visitOperation(const OperationPtr&); + virtual void visitDataMember(const DataMemberPtr&); + virtual void visitSequence(const SequencePtr&); + virtual void visitDictionary(const DictionaryPtr&); + virtual void visitEnum(const EnumPtr&); + virtual void visitConst(const ConstPtr&); + + private: + + void validate(const ContainedPtr&); + + StringSet _history; + }; + void printHeader(); std::string _dir; |