CardCollection addCards( CardCollection oldCards, Iterable<Card> cardsToAdd, TrackableProperty key) { if (cardsToAdd == null) { return oldCards; } TrackableCollection<CardView> views = get(key); if (oldCards == null) { oldCards = new CardCollection(); } boolean needFlagAsChanged = false; for (Card c : cardsToAdd) { if (c != null && oldCards.add(c)) { if (views == null) { views = new TrackableCollection<CardView>(); views.add(c.getView()); set(key, views); } else if (views.add(c.getView())) { needFlagAsChanged = true; } } } if (needFlagAsChanged) { flagAsChanged(key); } return oldCards; }
CardCollection addCard(CardCollection oldCards, Card cardToAdd, TrackableProperty key) { if (cardToAdd == null) { return oldCards; } if (oldCards == null) { oldCards = new CardCollection(); } if (oldCards.add(cardToAdd)) { TrackableCollection<CardView> views = get(key); if (views == null) { views = new TrackableCollection<CardView>(); views.add(cardToAdd.getView()); ; set(key, views); } else if (views.add(cardToAdd.getView())) { flagAsChanged(key); } } return oldCards; }