package com.xabber.android.data.database.realm; import android.support.annotation.NonNull; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.disco.packet.DiscoverInfo; import io.realm.RealmObject; import io.realm.annotations.PrimaryKey; import io.realm.annotations.Required; public class DiscoveryInfoCache extends RealmObject { public static class Fields { public static final String NODE_VER = "nodeVer"; public static final String DISCOVERY_INFO_XML = "discoveryInfoXml"; } @PrimaryKey private String nodeVer; @Required private String discoveryInfoXml; public DiscoveryInfoCache() { } public DiscoveryInfoCache(@NonNull String nodeVer, @NonNull DiscoverInfo discoveryInfo) { this.nodeVer = nodeVer; this.discoveryInfoXml = discoveryInfo.toXML().toString(); } public DiscoverInfo getDiscoveryInfo() { try { return PacketParserUtils.parseStanza(discoveryInfoXml); } catch (Exception e) { throw new IllegalStateException("Could not parse discovery info XML from database cache"); } } }