Add Roster ItemType.asSymbol()

This commit is contained in:
Florian Schmaus 2016-11-18 20:39:53 +01:00
parent d6ebb884e7
commit b6a37cb228
1 changed files with 30 additions and 5 deletions

View File

@ -346,37 +346,62 @@ public class RosterPacket extends IQ {
* have a subscription to the user's presence; this is the default value, so if the * have a subscription to the user's presence; this is the default value, so if the
* subscription attribute is not included then the state is to be understood as "none". * subscription attribute is not included then the state is to be understood as "none".
*/ */
none, none('⊥'),
/** /**
* The user has a subscription to the contact's presence, but the contact does not have a * The user has a subscription to the contact's presence, but the contact does not have a
* subscription to the user's presence. * subscription to the user's presence.
*/ */
to, to('←'),
/** /**
* The contact has a subscription to the user's presence, but the user does not have a * The contact has a subscription to the user's presence, but the user does not have a
* subscription to the contact's presence. * subscription to the contact's presence.
*/ */
from, from('→'),
/** /**
* The user and the contact have subscriptions to each other's presence (also called a * The user and the contact have subscriptions to each other's presence (also called a
* "mutual subscription"). * "mutual subscription").
*/ */
both, both('↔'),
/** /**
* The user wishes to stop receiving presence updates from the subscriber. * The user wishes to stop receiving presence updates from the subscriber.
*/ */
remove, remove('⚡'),
; ;
private static final char ME = '●';
private final String symbol;
private ItemType(char secondSymbolChar) {
StringBuilder sb = new StringBuilder(2);
sb.append(ME).append(secondSymbolChar);
symbol = sb.toString();
}
public static ItemType fromString(String string) { public static ItemType fromString(String string) {
if (StringUtils.isNullOrEmpty(string)) { if (StringUtils.isNullOrEmpty(string)) {
return none; return none;
} }
return ItemType.valueOf(string.toLowerCase(Locale.US)); return ItemType.valueOf(string.toLowerCase(Locale.US));
} }
/**
* Get a String containing symbols representing the item type. The first symbol in the
* string is a big dot, representing the local entity. The second symbol represents the
* established subscription relation and is typically an arrow. The head(s) of the arrow
* point in the direction presence messages are sent. For example, if there is only a head
* pointing to the big dot, then the local user will receive presence information from the
* remote entity.
*
* @return the symbolic representation of this item type.
*/
public String asSymbol() {
return symbol;
}
} }
} }