content: package com.gamatechno.vrlib.plugins;
  
  import android.text.TextUtils;
  
  import com.gamatechno.vrlib.plugins.hotspot.IMDHotspot;
  import com.gamatechno.vrlib.plugins.hotspot.MDAbsView;
  
  import java.util.List;
  import java.util.concurrent.CopyOnWriteArrayList;
  
  /**
   * Created by hzqiujiadi on 16/7/22.
   * hzqiujiadi ashqalcn@gmail.com
   */
  public class MDPluginManager {
  
      private static final String TAG = "MDPluginManager";
  
      private List<MDAbsPlugin> mList;
  
      public MDPluginManager() {
          mList = new CopyOnWriteArrayList<>();
      }
  
      public void add(MDAbsPlugin plugin){
          mList.add(plugin);
      }
  
      public List<MDAbsPlugin> getPlugins() {
          return mList;
      }
  
      public void remove(MDAbsPlugin plugin) {
          if (plugin != null){
              mList.remove(plugin);
          }
      }
  
      public void removeAll() {
          for (MDAbsPlugin plugin : mList) {
              if (plugin.removable()) {
                  mList.remove(plugin);
              }
          }
      }
  
      public IMDHotspot findHotspotByTag(String tag) {
          for (MDAbsPlugin plugin : mList) {
              if (plugin.removable() && plugin instanceof IMDHotspot) {
                  IMDHotspot hotspot = (IMDHotspot) plugin;
                  if (TextUtils.equals(tag, hotspot.getTag())){
                      return hotspot;
                  }
              }
          }
          return null;
      }
  
      public MDAbsView findViewByTag(String tag) {
          for (MDAbsPlugin plugin : mList) {
              if (plugin.removable() && plugin instanceof MDAbsView) {
                  MDAbsView mdView = (MDAbsView) plugin;
                  if (TextUtils.equals(tag, mdView.getTag())){
                      return mdView;
                  }
              }
          }
          return null;
      }
  }
  