From 008f747b956d85055d3b6a2b213eeec90b67729c Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Mon, 12 Sep 2016 22:48:51 +0200 Subject: don't use display version of jids --- .../java/de/pixart/messenger/xmpp/jid/Jid.java | 24 +++++++++------------- 1 file changed, 10 insertions(+), 14 deletions(-) (limited to 'src/main/java/de/pixart/messenger/xmpp') diff --git a/src/main/java/de/pixart/messenger/xmpp/jid/Jid.java b/src/main/java/de/pixart/messenger/xmpp/jid/Jid.java index 2f5451364..ffbd754ee 100644 --- a/src/main/java/de/pixart/messenger/xmpp/jid/Jid.java +++ b/src/main/java/de/pixart/messenger/xmpp/jid/Jid.java @@ -21,10 +21,6 @@ public final class Jid { private final String domainpart; private final String resourcepart; - // It's much more efficient to store the ful JID as well as the parts instead of figuring them - // all out every time (since some characters are displayed but aren't used for comparisons). - private final String displayjid; - public String getLocalpart() { return localpart; } @@ -73,7 +69,6 @@ public final class Jid { Jid fromCache = Jid.cache.get(jid); if (fromCache != null) { - displayjid = fromCache.displayjid; localpart = fromCache.localpart; domainpart = fromCache.domainpart; resourcepart = fromCache.resourcepart; @@ -94,8 +89,6 @@ public final class Jid { throw new InvalidJidException(InvalidJidException.INVALID_CHARACTER); } - String finaljid; - final int domainpartStart; final int atLoc = jid.indexOf("@"); final int slashLoc = jid.indexOf("/"); @@ -103,7 +96,6 @@ public final class Jid { // or there are one or more "@" signs but they're all in the resourcepart (eg. "example.net/@/rp@"): if (atCount == 0 || (atCount > 0 && slashLoc != -1 && atLoc > slashLoc)) { localpart = ""; - finaljid = ""; domainpartStart = 0; } else { final String lp = jid.substring(0, atLoc); @@ -116,7 +108,6 @@ public final class Jid { throw new InvalidJidException(InvalidJidException.INVALID_PART_LENGTH); } domainpartStart = atLoc + 1; - finaljid = lp + "@"; } final String dp; @@ -135,7 +126,6 @@ public final class Jid { } catch (final StringprepException e) { throw new InvalidJidException(InvalidJidException.STRINGPREP_FAIL, e); } - finaljid = finaljid + dp + "/" + rp; } else { resourcepart = ""; try{ @@ -143,7 +133,6 @@ public final class Jid { } catch (final StringprepException e) { throw new InvalidJidException(InvalidJidException.STRINGPREP_FAIL, e); } - finaljid = finaljid + dp; } // Remove trailing "." before storing the domain part. @@ -167,8 +156,6 @@ public final class Jid { } Jid.cache.put(jid, this); - - this.displayjid = finaljid; } public Jid toBareJid() { @@ -191,7 +178,16 @@ public final class Jid { @Override public String toString() { - return displayjid; + String out; + if (hasLocalpart()) { + out = localpart + '@' + domainpart; + } else { + out = domainpart; + } + if (!resourcepart.isEmpty()) { + out += '/'+resourcepart; + } + return out; } @Override -- cgit v1.2.3