blob: 97602082dd2598c800655d81e95f4ad151387507 [file] [log] [blame]
Andreas Huberc9410c72016-07-28 12:18:40 -07001#ifndef TYPE_DEF_H_
2
3#define TYPE_DEF_H_
4
Andreas Huber39fa7182016-08-19 14:27:33 -07005#include "Type.h"
Andreas Huberc9410c72016-07-28 12:18:40 -07006
7namespace android {
8
Andreas Huber39fa7182016-08-19 14:27:33 -07009struct TypeDef : public Type {
Andreas Huber31629bc2016-08-03 09:06:40 -070010 TypeDef(Type *type);
Andreas Huberc9410c72016-07-28 12:18:40 -070011
Andreas Huber737080b2016-08-02 15:38:04 -070012 const ScalarType *resolveToScalarType() const override;
13
Andreas Huber8d3ac0c2016-08-04 14:49:23 -070014 Type *referencedType() const;
Andreas Huberc9410c72016-07-28 12:18:40 -070015
Andreas Huber5a545442016-08-03 10:44:56 -070016 bool isInterface() const override;
Andreas Huber8d3ac0c2016-08-04 14:49:23 -070017 bool isEnum() const override;
18 bool isTypeDef() const override;
Andreas Huber881227d2016-08-02 14:20:21 -070019
Andreas Huber2831d512016-08-15 09:33:47 -070020 std::string getJavaType() const override;
21
Andreas Huberbb797e42016-08-03 12:53:02 -070022 bool needsEmbeddedReadWrite() const override;
23 bool resultNeedsDeref() const override;
24
Andreas Huberc9410c72016-07-28 12:18:40 -070025private:
26 Type *mReferencedType;
27
28 DISALLOW_COPY_AND_ASSIGN(TypeDef);
29};
30
31} // namespace android
32
33#endif // TYPE_DEF_H_
34