ConfigurationStorageV1.java 文件源码

java
阅读 18 收藏 0 点赞 0 评论 0

项目:flashlight-search 作者:
@Override
public void deleteConfigurationTab(String tabId, PortletPreferences preferences) throws ReadOnlyException, ValidatorException, IOException {
    // First, delete any reference to this tab
    List<String> tabIds = Arrays.asList(preferences.getValues(CONF_KEY_TABS, EMPTY_ARRAY))
        .stream()
        .filter(tab -> !tab.equals(tabId))
        .collect(Collectors.toList());
    preferences.setValues(CONF_KEY_TABS, tabIds.toArray(new String[tabIds.size()]));

    // Then, flush out any singular value
    String assetTypeKey = format(CONF_KEY_FORMAT_ASSET_TYPE, tabId);
    String journalArticleViewTemplateKey = format(CONF_KEY_FORMAT_JOURNAL_ARTICLE_VIEW_TEMPLATE, tabId);
    String orderKey = format(CONF_KEY_FORMAT_ORDER, tabId);
    String pageSizeKey = format(CONF_KEY_FORMAT_PAGE_SIZE, tabId);
    String fullPageSizeKey = format(CONF_KEY_FORMAT_FULL_PAGE_SIZE, tabId);
    String loadMoreSizeKey = format(CONF_KEY_FORMAT_LOAD_MORE_PAGE_SIZE, tabId);
    String sortByKey = format(CONF_KEY_FORMAT_SORT_BY, tabId);
    String sortReverseKey = format(CONF_KEY_FORMAT_SORT_REVERSE, tabId);

    preferences.reset(orderKey);
    preferences.reset(assetTypeKey);
    preferences.reset(journalArticleViewTemplateKey);
    preferences.reset(pageSizeKey);
    preferences.reset(fullPageSizeKey);
    preferences.reset(loadMoreSizeKey);
    preferences.reset(sortByKey);
    preferences.reset(sortReverseKey);

    // Finally, flush out composed values
    Enumeration<String> prefKeys = preferences.getNames();
    Pattern journalArticleTemplatesKeyPattern = Pattern.compile(format(CONF_KEY_PATTERN_FORMAT_JOURNAL_ARTICLE_TEMPLATES, tabId));
    Pattern dlFileEntryTemplatesKeyPattern = Pattern.compile(format(CONF_KEY_PATTERN_FORMAT_DL_FILE_ENTRY_TYPE_TEMPLATES, tabId));
    Pattern titleKeyPattern = Pattern.compile(format(CONF_KEY_PATTERN_FORMAT_TITLE, tabId));
    Pattern searchFacetPattern = Pattern.compile(format(CONF_KEY_PATTERN_FORMAT_SEARCH_FACET, tabId));

    while(prefKeys.hasMoreElements()) {
        String key = prefKeys.nextElement();
        boolean journalArticleTemplatesMatches = journalArticleTemplatesKeyPattern.matcher(key).matches();
        boolean dlFileEntryTemplatesMatches = dlFileEntryTemplatesKeyPattern.matcher(key).matches();
        boolean titleMatches = titleKeyPattern.matcher(key).matches();
        boolean searchFacetMatches = searchFacetPattern.matcher(key).matches();

        if(journalArticleTemplatesMatches || dlFileEntryTemplatesMatches || titleMatches || searchFacetMatches) {
            preferences.reset(key);
        }
    }

    preferences.store();
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号