Files
flipper/android/plugins/inspector/ObjectTracker.java
Daniel Büchele fbbf8cf16b Initial commit 🎉
fbshipit-source-id: b6fc29740c6875d2e78953b8a7123890a67930f2
Co-authored-by: Sebastian McKenzie <sebmck@fb.com>
Co-authored-by: John Knox <jknox@fb.com>
Co-authored-by: Emil Sjölander <emilsj@fb.com>
Co-authored-by: Pritesh Nandgaonkar <prit91@fb.com>
2018-06-01 11:03:58 +01:00

46 lines
932 B
Java

/*
* Copyright (c) 2018-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the LICENSE
* file in the root directory of this source tree.
*
*/
package com.facebook.sonar.plugins.inspector;
import java.lang.ref.WeakReference;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Nullable;
class ObjectTracker {
private final Map<String, WeakReference<Object>> mObjects = new HashMap<>();
void put(String id, Object obj) {
mObjects.put(id, new WeakReference<>(obj));
}
@Nullable
Object get(String id) {
final WeakReference<Object> weakObj = mObjects.get(id);
if (weakObj == null) {
return null;
}
final Object obj = weakObj.get();
if (obj == null) {
mObjects.remove(id);
}
return obj;
}
void clear() {
mObjects.clear();
}
boolean contains(String id) {
return mObjects.containsKey(id);
}
}