git » sdk » main » tree

[main] / borogove / RosterItem.hx

package borogove;

@:nullSafety(StrictThreaded)
@:forward(toString)
abstract RosterItem(Stanza) from Stanza to Stanza {
	public var jid(get, never): Null<String>;
	public var name(get, never): Null<String>;
	public var subscription(get, never): Null<String>;
	public var groups(get, never): Array<String>;

	private inline function get_jid() {
		return this.attr.get("jid");
	}

	private inline function get_name() {
		return this.attr.get("name");
	}

	private inline function get_subscription() {
		return this.attr.get("subscription");
	}

	private inline function get_groups() {
		// TODO: cannot specify namespace here due to bugs in namespace handling in allTags
		return this.allTags("group").map(g -> g.getText());
	}
}