+
+ public long size() {
+ synchronized (this) {
+ return articles.size();
+ }
+ }
+
+ public Article[] getArticles() {
+ ArrayList<Article> result;
+ Article a;
+
+ synchronized (articles) {
+ result = new ArrayList<>(articles.size());
+
+ for (WeakReference<Article> r: articles.values()) {
+ a = r.get();
+ if (a != null)
+ result.add(a);
+ }
+
+ return result.toArray(new Article[] {});
+ }
+ }