Skip to content

Commit

Permalink
PageHandlerAdapterFactory, handlerAdapters,handlerAdapterMap should u…
Browse files Browse the repository at this point in the history
…nmodifiable (#11801)

* Update LocalSimpleCountRateCounter.java

fixbug

* Update LocalSimpleCountRateCounter.java

bugfix

* fix:默认的nacos反脆弱插件的问题

* fix:默认的nacos反脆弱插件的问题

* fix:默认的nacos反脆弱插件的问题

* fix:默认的nacos反脆弱插件的问题

* fix:默认的nacos反脆弱插件的问题,调整为tryAdd

* fix:默认的nacos反脆弱插件的问题,调整为tryAdd

* 调整测试方式,保障流水线成功

* 重构PageHandlerAdapterFactory,这里将handlerAdapters,handlerAdapterMap设置为unmodifiable

* 重构PageHandlerAdapterFactory,这里将handlerAdapters,handlerAdapterMap设置为unmodifiable
  • Loading branch information
floor07 committed Mar 7, 2024
1 parent b7c3905 commit c2aa515
Showing 1 changed file with 28 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,61 +24,52 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Collections;
import java.util.function.Consumer;

/**
* pagination factory.
*
* @author huangKeMing
*/
public class PageHandlerAdapterFactory {

private static PageHandlerAdapterFactory instance;

private List<PageHandlerAdapter> handlerAdapters;

private Map<String, PageHandlerAdapter> handlerAdapterMap;


private final List<PageHandlerAdapter> handlerAdapters;

private final Map<String, PageHandlerAdapter> handlerAdapterMap;

public List<PageHandlerAdapter> getHandlerAdapters() {
return handlerAdapters;
}

public Map<String, PageHandlerAdapter> getHandlerAdapterMap() {
return handlerAdapterMap;
}

private PageHandlerAdapterFactory() {
handlerAdapters = new ArrayList<>(3);
handlerAdapterMap = new HashMap<>(3);
initHandlerAdapters();
}

public static PageHandlerAdapterFactory getInstance() {
if (instance == null) {
synchronized (PageHandlerAdapterFactory.class) {
if (instance == null) {
instance = new PageHandlerAdapterFactory();
}
}
}
return instance;
}

/**
* init handler adapters.
*/
private void initHandlerAdapters() {
List<PageHandlerAdapter> handlerAdapters = new ArrayList<>(3);
Map<String, PageHandlerAdapter> handlerAdapterMap = new HashMap<>(3);
Consumer<PageHandlerAdapter> addHandlerAdapter = handlerAdapter -> {
handlerAdapters.add(handlerAdapter);
handlerAdapterMap.put(handlerAdapter.getClass().getName(), handlerAdapter);
};
// MysqlPageHandlerAdapter
addHandlerAdapter(new MysqlPageHandlerAdapter());
addHandlerAdapter.accept(new MysqlPageHandlerAdapter());
// DerbyPageHandlerAdapter
addHandlerAdapter(new DerbyPageHandlerAdapter());
addHandlerAdapter.accept(new DerbyPageHandlerAdapter());
// DefaultPageHandlerAdapter
addHandlerAdapter(new DefaultPageHandlerAdapter());
addHandlerAdapter.accept(new DefaultPageHandlerAdapter());
this.handlerAdapters = Collections.unmodifiableList(handlerAdapters);
this.handlerAdapterMap = Collections.unmodifiableMap(handlerAdapterMap);
}

private static final class InstanceHolder {
static final PageHandlerAdapterFactory INSTANCE = new PageHandlerAdapterFactory();
}

private void addHandlerAdapter(PageHandlerAdapter handlerAdapter) {
handlerAdapters.add(handlerAdapter);
handlerAdapterMap.put(handlerAdapter.getClass().getName(), handlerAdapter);

public static PageHandlerAdapterFactory getInstance() {
return InstanceHolder.INSTANCE;
}

}

0 comments on commit c2aa515

Please sign in to comment.