Files
flipper/android/plugins/inspector/ObjectTracker.java
Hilal Alsibai e6fa377d75 Add extension support to InspectorSonarPlugin
Summary:
This mirrors the extension support added to the desktop plugin and allows people to dynamically
add extension commands

Reviewed By: danielbuechele

Differential Revision: D8691167

fbshipit-source-id: 60136b960f8bbdfa42b2077d1f5f7b391fc44443
2018-07-03 16:33:42 -07:00

48 lines
968 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;
public class ObjectTracker {
ObjectTracker() {}
private final Map<String, WeakReference<Object>> mObjects = new HashMap<>();
void put(String id, Object obj) {
mObjects.put(id, new WeakReference<>(obj));
}
@Nullable
public 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);
}
}