package com.usenative;
import java.util.*;
public class RJavaObjectManager{
    private static HashMap<String,RJavaObject> pool=new HashMap<String,RJavaObject>();
    private static int count=0; // 内部变量
    public static void put(String key,RJavaObject obj){
        pool.put(key,obj);
    }
    public static RJavaObject get(String key){
        return pool.get(key);
    }
    public static String addInternal(RJavaObject obj){
        // 添加一个内部变量，返回该内部变量的名称
        // 变量规则，以$开头，接下去的一个字符如果是数字代表内部变量，$app代表ReactApplicationContext这个特殊变量，其它为自定义变量
        String internal_name="$"+String.valueOf(RJavaObjectManager.count);
        pool.put(internal_name,obj);
        RJavaObjectManager.count++;
        return internal_name;
    }
    public static int size(){
        // 获得存储了多少个内部变量
        return RJavaObjectManager.pool.size();
    }
    public static void remove(String intName){
        // 删除某个内部变量
        RJavaObjectManager.pool.remove(intName);
    }
    public static void initSpecial(String intName,RJavaObject obj){
        // 仅能在初始化模块时调用
        pool.put(intName,obj);
    }
  }