23 package com.realtime.crossfire.jxclient.account;
26 import java.util.ArrayList;
27 import java.util.Collection;
28 import java.util.Collections;
29 import java.util.HashMap;
30 import java.util.List;
32 import org.jetbrains.annotations.NotNull;
33 import org.jetbrains.annotations.Nullable;
46 private final List<CharacterInformation>
characters =
new ArrayList<>();
59 private final Object
sync =
new Object();
85 }
catch (
final IndexOutOfBoundsException ignored) {
99 if (characterInformation.getName().equals(characterName)) {
115 synchronized (
sync) {
125 synchronized (
sync) {
141 final int oldMetaListSize;
142 final int newMetaListSize;
143 synchronized (
sync) {
153 characterListener.numberOfItemsChanged();
156 for (
int i = 0, iMax = Math.max(oldMetaListSize, newMetaListSize); i < iMax; i++) {
158 characterInformationListener.informationChanged();
206 if (existingListeners !=
null) {
207 return existingListeners;
223 if (character.getFaceNumber() == faceNum) {