/** * Copyright (c) 2013, Redsolution LTD. All rights reserved. * * This file is part of Xabber project; you can redistribute it and/or * modify it under the terms of the GNU General Public License, Version 3. * * Xabber is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License, * along with this program. If not, see http://www.gnu.org/licenses/. */ package com.xabber.android.data.roster; import com.xabber.android.data.account.StatusMode; /** * Represents information about contact's resource. * * @author alexander.ivanov */ public class ResourceItem implements Comparable<ResourceItem> { /** * Unchanged resource name. */ private String verbose; private StatusMode statusMode; private String statusText; private int priority; public ResourceItem(String verbose, StatusMode statusMode, String statusText, int priority) { this.verbose = verbose; this.statusMode = statusMode; this.statusText = statusText; this.priority = priority; } /** * Note: {@link Jid#getStringPrep(String)} before operate on it. * * @return Unchanged resource name. */ public String getVerbose() { return verbose; } public void setVerbose(String verbose) { this.verbose = verbose; } /** * Note: {@link Jid#getStringPrep(String)} before operate on it. * * @param bareAddress * @return Full JID. */ // public UserJid getUser(String bareAddress) { // return bareAddress + "/" + verbose; // } public StatusMode getStatusMode() { return statusMode; } public void setStatusMode(StatusMode statusMode) { this.statusMode = statusMode; } public String getStatusText() { return statusText; } public void setStatusText(String statusText) { this.statusText = statusText; } public int getPriority() { return priority; } public void setPriority(int priority) { this.priority = priority; } @Override public int compareTo(ResourceItem another) { int result = priority - another.priority; if (result != 0) return result; return statusMode.compareTo(another.statusMode); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + priority; result = prime * result + ((statusMode == null) ? 0 : statusMode.hashCode()); result = prime * result + ((statusText == null) ? 0 : statusText.hashCode()); result = prime * result + ((verbose == null) ? 0 : verbose.hashCode()); return result; } }