aboutsummaryrefslogtreecommitdiff
path: root/libdino/src/entity/jid.vala
diff options
context:
space:
mode:
authorMarvin W <git@larma.de>2018-01-12 21:03:09 +0100
committerfiaxh <git@mx.ax.lt>2018-01-28 00:38:47 +0100
commit782ae4c049e2b6fab13d7453cbb0e74610e7d200 (patch)
tree1b4cd0a1689cee0c2e2cac2ae9a5fb8ebbe63621 /libdino/src/entity/jid.vala
parentd46d071e57e599e8cfb1780597cbecb36881c4d8 (diff)
downloaddino-782ae4c049e2b6fab13d7453cbb0e74610e7d200.tar.gz
dino-782ae4c049e2b6fab13d7453cbb0e74610e7d200.zip
Move Jid class to xmpp-vala, partially refactor namespace
Diffstat (limited to 'libdino/src/entity/jid.vala')
-rw-r--r--libdino/src/entity/jid.vala89
1 files changed, 0 insertions, 89 deletions
diff --git a/libdino/src/entity/jid.vala b/libdino/src/entity/jid.vala
deleted file mode 100644
index 42218fb2..00000000
--- a/libdino/src/entity/jid.vala
+++ /dev/null
@@ -1,89 +0,0 @@
-public class Dino.Entities.Jid : Object {
- public string? localpart { get; set; }
- public string domainpart { get; set; }
- public string? resourcepart { get; set; }
-
- public Jid bare_jid {
- owned get { return localpart != null ? new Jid(@"$localpart@$domainpart") : new Jid(domainpart); }
- }
-
- private string jid { get; private set; }
-
- public Jid(string jid) {
- Jid? parsed = Jid.parse(jid);
- string? localpart = parsed != null ? parsed.localpart : null;
- string domainpart = parsed != null ? parsed.domainpart : jid;
- string? resourcepart = parsed != null ? parsed.resourcepart : null;
- this.components(localpart, domainpart, resourcepart);
- }
-
- public Jid.with_resource(string bare_jid, string resource) {
- Jid? parsed = Jid.parse(bare_jid);
- this.components(parsed.localpart, parsed.domainpart, resource);
- }
-
- public Jid.components(string? localpart, string domainpart, string? resourcepart) {
- string jid = domainpart;
- if (localpart != null) {
- jid = @"$localpart@$jid";
- }
- if (resourcepart != null) {
- jid = @"$jid/$resourcepart";
- }
- this.jid = jid;
- this.localpart = localpart;
- this.domainpart = domainpart;
- this.resourcepart = resourcepart;
- }
-
- public static Jid? parse(string jid) {
- int slash_index = jid.index_of("/");
- string resourcepart = slash_index == -1 ? null : jid.slice(slash_index + 1, jid.length);
- string bare_jid = slash_index == -1 ? jid : jid.slice(0, slash_index);
- int at_index = bare_jid.index_of("@");
- string localpart = at_index == -1 ? null : bare_jid.slice(0, at_index);
- string domainpart = at_index == -1 ? bare_jid : bare_jid.slice(at_index + 1, bare_jid.length);
-
- if (domainpart == "") return null;
- if (slash_index != -1 && resourcepart == "") return null;
- if (at_index != -1 && localpart == "") return null;
-
- return new Jid.components(localpart, domainpart, resourcepart);
- }
-
- public bool is_bare() {
- return localpart != null && resourcepart == null;
- }
-
- public bool is_full() {
- return localpart != null && resourcepart != null;
- }
-
- public string to_string() {
- return jid;
- }
-
- public bool equals_bare(Jid? jid) {
- return jid != null && equals_bare_func(this, jid);
- }
-
- public bool equals(Jid? jid) {
- return jid != null && equals_func(this, jid);
- }
-
- public static new bool equals_bare_func(Jid jid1, Jid jid2) {
- return jid1.bare_jid.to_string() == jid2.bare_jid.to_string();
- }
-
- public static bool equals_func(Jid jid1, Jid jid2) {
- return jid1.to_string() == jid2.to_string();
- }
-
- public static new uint hash_bare_func(Jid jid) {
- return jid.bare_jid.to_string().hash();
- }
-
- public static new uint hash_func(Jid jid) {
- return jid.to_string().hash();
- }
-}