All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.flyfish.oauth.configuration.sync.user.AbstractUserProvider Maven / Gradle / Ivy

There is a newer version: 1.0.7
Show newest version
package com.flyfish.oauth.configuration.sync.user;

import com.flyfish.oauth.configuration.sync.SyncUserProvider;
import com.flyfish.oauth.domain.raw.LocalUser;
import com.flyfish.oauth.filter.SyncUserFilter;
import org.apache.commons.collections4.CollectionUtils;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * 抽象的用户同步转换器
 *
 * @param  泛型
 */
public abstract class AbstractUserProvider implements SyncUserProvider {

    /**
     * 保证系统内实例化至少一次,以插入调用链
     */
    public AbstractUserProvider() {
        SyncUserFilter.bind(this);
    }

    /**
     * 转换
     *
     * @param domain 实体
     * @return 结果
     */
    protected abstract LocalUser transform(T domain);

    /**
     * 转换用户门
     *
     * @param users 用户
     * @return 结果
     */
    public List transform(List users) {
        List userList = new ArrayList<>();
        if (CollectionUtils.isNotEmpty(users)) {
            for (T item : users) {
                LocalUser mapped = transform(item);
                userList.add(mapped);
            }
            return userList;
        }
        return Collections.emptyList();
    }

    /**
     * 获取用户列表
     *
     * @Author pxx
     * @Date 2020/11/25
     **/
    protected abstract List getLocalUsers();

    /**
     * 核心提供方法,提供转换后的用户
     *
     * @return 结果
     */
    public List provide() {
        return transform(getLocalUsers());
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy