diff options
author | Yuuta Liang <yuutaw@student.cs.ubc.ca> | 2023-11-28 21:00:25 -0800 |
---|---|---|
committer | Yuuta Liang <yuutaw@student.cs.ubc.ca> | 2023-11-28 21:00:25 -0800 |
commit | c992db275494b05627248cd741adac5d7c199603 (patch) | |
tree | f259bb943512007cbc9b50ddf8013d6e3f8b9008 /umlgen/src/main/java/moe/yuuta/umlgen/ClassItem.kt | |
parent | 1073af21305360bd33903c533cdac57e9f936294 (diff) | |
download | jca-c992db275494b05627248cd741adac5d7c199603.tar jca-c992db275494b05627248cd741adac5d7c199603.tar.gz jca-c992db275494b05627248cd741adac5d7c199603.tar.bz2 jca-c992db275494b05627248cd741adac5d7c199603.zip |
Add UML generator
Signed-off-by: Yuuta Liang <yuutaw@student.cs.ubc.ca>
Diffstat (limited to 'umlgen/src/main/java/moe/yuuta/umlgen/ClassItem.kt')
-rw-r--r-- | umlgen/src/main/java/moe/yuuta/umlgen/ClassItem.kt | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/umlgen/src/main/java/moe/yuuta/umlgen/ClassItem.kt b/umlgen/src/main/java/moe/yuuta/umlgen/ClassItem.kt new file mode 100644 index 0000000..245f0e0 --- /dev/null +++ b/umlgen/src/main/java/moe/yuuta/umlgen/ClassItem.kt @@ -0,0 +1,21 @@ +package moe.yuuta.umlgen + +import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration +import com.github.javaparser.ast.body.EnumDeclaration + +/** + * Represent a class with abstract / interface tag, or no tag. + */ +@JvmRecord +data class ClassItem(val name: String, val tag: String?) { + /** + * Automatically determine if the class is abstract, interface, or else, and set the tag. + */ + constructor(cls: ClassOrInterfaceDeclaration): this(cls.nameAsString, + if (cls.isAbstract) "abstract" else if (cls.isInterface) "interface" else null) + + /** + * For enum, use null as tag. + */ + constructor(cls: EnumDeclaration): this(cls.nameAsString, null) +} |