@lanaqi/rsr
Version:
163 lines (162 loc) • 3.41 kB
TypeScript
import type { AccessMatcher } from './matcher';
import type { AccessNavigator } from './navigator';
import type { AccessRecorder } from './recorder';
import type { AccessStorer } from './storer';
import type { AccessVoter } from './voter';
/**
* 访问上下文
*/
export interface AccessContext {
/**
* 获取记录器
*/
getRecorder(): AccessRecorder;
/**
* 设置记录器
* @param recorder 记录器
*/
setRecorder(recorder: AccessRecorder): void;
/**
* 获取投票器
*/
getVoter(): AccessVoter;
/**
* 设置投票器
* @param voter 投票器
*/
setVoter(voter: AccessVoter): void;
/**
* 获取存储器
*/
getStorer(): AccessStorer;
/**
* 设置存储器
* @param storer 存储器
*/
setStorer(storer: AccessStorer): void;
/**
* 获取匹配器
*/
getMatcher(): AccessMatcher;
/**
* 设置匹配器
* @param matcher 匹配器
*/
setMatcher(matcher: AccessMatcher): void;
/**
* 获取导航器
*/
getNavigator(): AccessNavigator;
/**
* 设置导航器
* @param navigator 导航器
*/
setNavigator(navigator: AccessNavigator): void;
/**
* 获取父级
*/
getParent(): AccessContext | undefined;
/**
* 设置父级
* @param parent 父级
*/
setParent(parent: AccessContext): void;
}
/**
* 简单上下文
*/
export declare class SimpleContext implements AccessContext {
/**
* 记录器
* @private
*/
private recorder;
/**
* 投票器
* @private
*/
private voter;
/**
* 存储器
* @private
*/
private storer;
/**
* 匹配器
* @private
*/
private matcher;
/**
* 导航器
* @private
*/
private navigator;
/**
* 父级
* @private
*/
private parent?;
/**
* 构造函数
* @param recorder 记录器
* @param voter 投票器
* @param storer 存储器
* @param matcher 匹配器
* @param navigator 导航器
*/
constructor(recorder: AccessRecorder, voter: AccessVoter, storer: AccessStorer, matcher: AccessMatcher, navigator: AccessNavigator);
/**
* 获取记录器
*/
getRecorder(): AccessRecorder;
/**
* 设置记录器
* @param recorder 记录器
*/
setRecorder(recorder: AccessRecorder): void;
/**
* 获取投票器
*/
getVoter(): AccessVoter;
/**
* 设置投票器
* @param voter 投票器
*/
setVoter(voter: AccessVoter): void;
/**
* 获取存储器
*/
getStorer(): AccessStorer;
/**
* 设置存储器
* @param storer 存储器
*/
setStorer(storer: AccessStorer): void;
/**
* 获取匹配器
*/
getMatcher(): AccessMatcher;
/**
* 设置匹配器
* @param matcher 匹配器
*/
setMatcher(matcher: AccessMatcher): void;
/**
* 获取导航器
*/
getNavigator(): AccessNavigator;
/**
* 设置导航器
* @param navigator 导航器
*/
setNavigator(navigator: AccessNavigator): void;
/**
* 获取父级
*/
getParent(): AccessContext | undefined;
/**
* 设置父级
* @param parent 父级
*/
setParent(parent?: AccessContext): void;
}