package com.baidu.disconf.client.support.registry.impl; import java.util.ArrayList; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.baidu.disconf.client.support.registry.Registry; /** * Created by knightliao on 15/11/26. */ public class SimpleRegistry implements Registry { protected static final Logger LOGGER = LoggerFactory.getLogger(SimpleRegistry.class); @Override public <T> List<T> findByType(Class<T> type, boolean newInstance) { List<T> ret = new ArrayList<T>(1); try { ret.add(type.newInstance()); } catch (InstantiationException e) { LOGGER.error("Failed to init " + type.getSimpleName() + " " + e.toString()); } catch (IllegalAccessException e) { LOGGER.error("Failed to init " + type.getSimpleName() + " " + e.toString()); } return ret; } @Override public <T> T getFirstByType(Class<T> type, boolean newInstance) { List<T> list = this.findByType(type, newInstance); if (list.size() == 0) { return null; } else { return list.get(0); } } @Override public <T> T getFirstByType(Class<T> type, boolean newInstance, boolean withProxy) { return getFirstByType(type, newInstance); } }