跳过导航链接
A B C D E F G I L M N O P Q R S T U V 

A

add(String, Object) - 类 中的方法net.mingsoft.base.entity.ResultData
添加返回参数
alterTable(String, Map, String) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
SQL修改表
alterTable(String, Map, String) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
alterTable(String, Map, String) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
SQL修改表

B

BaseAction - net.mingsoft.base.action中的类
 
BaseAction() - 类 的构造器net.mingsoft.base.action.BaseAction
 
BaseBizImpl<M extends com.baomidou.mybatisplus.core.mapper.BaseMapper<T>,T> - net.mingsoft.base.biz.impl中的类
 
BaseBizImpl() - 类 的构造器net.mingsoft.base.biz.impl.BaseBizImpl
 
BaseCookieEnum - net.mingsoft.base.constant.e中的接口
 
BaseEntity - net.mingsoft.base.entity中的类
 
BaseEntity() - 类 的构造器net.mingsoft.base.entity.BaseEntity
 
BaseEnum - net.mingsoft.base.constant.e中的接口
 
BaseJob - net.mingsoft.base.job中的类
 
BaseJob() - 类 的构造器net.mingsoft.base.job.BaseJob
 
BaseSessionEnum - net.mingsoft.base.constant.e中的接口
 
build() - 类 中的静态方法net.mingsoft.base.entity.ResultData
 
BundleUtil - net.mingsoft.base.util中的类
获取国际化资源工具类
BundleUtil() - 类 的构造器net.mingsoft.base.util.BundleUtil
 

C

code(HttpStatus) - 类 中的方法net.mingsoft.base.entity.ResultData
 
code(String) - 类 中的方法net.mingsoft.base.entity.ResultData
 
CODE_KEY - 类 中的静态变量net.mingsoft.base.entity.ResultData
状态码
Const - net.mingsoft.base.constant中的类
 
Const() - 类 的构造器net.mingsoft.base.constant.Const
 
countBySQL(String, Map) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
查询表中记录总数
countBySQL(String, Map, List<Map>) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
查询表中记录总数
countBySQL(String, Map) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
countBySQL(String, Map, List<Map>) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
countBySQL(String, Map, List<Map>) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
SQL总数
createBy - 类 中的变量net.mingsoft.base.entity.BaseEntity
创建用户编号
createDate - 类 中的变量net.mingsoft.base.entity.BaseEntity
创建日期
createTable(String, Map<Object, List>) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
创建表
createTable(String, Map) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
createTable(String, Map<Object, List>) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
SQL创建表

D

data(Object) - 类 中的方法net.mingsoft.base.entity.ResultData
返回数据
DATA_KEY - 类 中的静态变量net.mingsoft.base.entity.ResultData
数据
del - 类 中的变量net.mingsoft.base.entity.BaseEntity
标记
delete(String[]) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
根据id集合实现批量的删除 扩展雪花编号的id
delete(int[]) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
根据id集合实现批量的删除
delete(int[]) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
delete(String[]) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
delete(int[]) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
根据id集合实现批量的删除
delete(String[]) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
根据id集合实现批量的删除
deleteByEntity(BaseEntity) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
已过时。
deleteBySQL(String, Map) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
动态SQL删除
deleteBySQL(String, Map) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
deleteBySQL(String, Map) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
SQL动态SQL删除
deleteEntity(BaseEntity) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
已过时。
deleteEntity(int) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
已过时。
deleteEntity(int) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
deleteEntity(BaseEntity) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
deleteEntity(int) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
已过时。
DeleteEnum - net.mingsoft.base.constant.e中的枚举
 
dropTable(String) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
删除表
dropTable(String) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
dropTable(String) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
SQL删除表

E

ERROR - 类 中的静态变量net.mingsoft.base.constant.Const
统一定义error错误值,用户返回消息统一
error() - 类 中的方法net.mingsoft.base.entity.ResultData
错误返回
error(String) - 类 中的方法net.mingsoft.base.entity.ResultData
错误返回
ERROR_500 - 类 中的静态变量net.mingsoft.base.constant.Const
统一定义error错误值,用户返回消息统一
excuteSql(String) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
导入执行数据
excuteSql(String) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
excuteSql(String) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
SQL导入执行数据

F

filterContent(String...) - 类 中的静态方法net.mingsoft.base.util.SqlInjectionUtil
sql注入过滤处理,遇到注入关键字抛异常
filterContent(Map<String, String>) - 类 中的静态方法net.mingsoft.base.util.SqlInjectionUtil
过滤map的sql注入过滤处理,遇到注入关键字抛异常
FtlUtil - net.mingsoft.base.util中的类
 
FtlUtil() - 类 的构造器net.mingsoft.base.util.FtlUtil
 

G

get(String, String) - 类 中的静态方法net.mingsoft.base.util.PropertiesUtil
读取资源文件键值
getBaseString(String, String...) - 类 中的静态方法net.mingsoft.base.util.BundleUtil
读取base包国际化文件,因为base包有通用的基本提示,也经常用到,具体看 net.mingsoft.base.resources.resources
getByEntity(BaseEntity) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
已过时。
getCode() - 类 中的方法net.mingsoft.base.entity.ResultData
获取编码
getCreateBy() - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
getCreateDate() - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
getDao() - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
不需要重写此方法,自动会
getData(Class<T>) - 类 中的方法net.mingsoft.base.entity.ResultData
获取data对象
getDel() - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
getDomain(HttpServletRequest) - 类 中的方法net.mingsoft.base.action.BaseAction
已过时。
getEntity(BaseEntity) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
已过时。
getEntity(int) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
已过时。
getEntity(int) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
getEntity(BaseEntity) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
getEntity(Integer) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
已过时。
getExcludeUrls() - 类 中的方法net.mingsoft.base.resolver.MultipartResolver
 
getHost(HttpServletRequest) - 类 中的方法net.mingsoft.base.action.BaseAction
读取服务器主机信息
getHostIp() - 类 中的方法net.mingsoft.base.action.BaseAction
读取服务器主机ip信息
getId() - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
getIntegerId() - 类 中的方法net.mingsoft.base.entity.BaseEntity
方便业务层获取id,为空返回null
getIntId() - 类 中的方法net.mingsoft.base.entity.BaseEntity
方便业务层获取id,为空返回0
getLocaleString(String, String) - 类 中的方法net.mingsoft.base.action.BaseAction
已过时。
getLocaleString(String, String) - 类 中的静态方法net.mingsoft.base.util.BundleUtil
已过时。
getLocalString(String, String...) - 类 中的静态方法net.mingsoft.base.util.BundleUtil
已过时。
getMap(String) - 类 中的静态方法net.mingsoft.base.util.PropertiesUtil
读取资源文件所有信息
getMapByProperties(String) - 类 中的方法net.mingsoft.base.action.BaseAction
根据属性配置文件返回map
getMapByProperties(ResourceBundle) - 类 中的方法net.mingsoft.base.action.BaseAction
 
getMsg() - 类 中的方法net.mingsoft.base.entity.ResultData
获取文本提示信息
getOne(Wrapper<T>, boolean) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
getOrder() - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
getOrderBy() - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
getRemarks() - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
getResString(String) - 类 中的方法net.mingsoft.base.action.BaseAction
已过时。
getResString(String, ResourceBundle) - 类 中的方法net.mingsoft.base.action.BaseAction
已过时。
getResString(String, String...) - 类 中的方法net.mingsoft.base.action.BaseAction
读取国际化资源文件
getResString(String, ResourceBundle, String...) - 类 中的方法net.mingsoft.base.action.BaseAction
已过时。
getResString(String) - 类 中的静态方法net.mingsoft.base.util.BundleUtil
已过时。
getResString(String, ResourceBundle) - 类 中的静态方法net.mingsoft.base.util.BundleUtil
已过时。
getResString(String, String...) - 类 中的静态方法net.mingsoft.base.util.BundleUtil
已过时。
getResString(String, ResourceBundle, String...) - 类 中的静态方法net.mingsoft.base.util.BundleUtil
已过时。
getSqlDataScope() - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
getSqlWhere() - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
getSqlWhereList() - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
getString(String, String, String...) - 类 中的静态方法net.mingsoft.base.util.BundleUtil
读取国际化资源文件,优先模块对应的资源文件,如果模块资源文件找不到就会优先基础层,对应的控制层代码,可以直接使用this.getResString()方法
getUpdateBy() - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
getUpdateDate() - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
getUrl(HttpServletRequest) - 类 中的方法net.mingsoft.base.action.BaseAction
已过时。
getVersion() - 类 中的静态方法net.mingsoft.base.MSVersion
 

I

IBaseBiz<T> - net.mingsoft.base.biz中的接口
 
IBaseDao<E> - net.mingsoft.base.dao中的接口
 
id - 类 中的变量net.mingsoft.base.entity.BaseEntity
实体编号(唯一标识)
insertBySQL(String, Map) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
添加记录
insertBySQL(String, Map) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
insertBySQL(String, Map) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
SQL添加记录
isMobileDevice(HttpServletRequest) - 类 中的方法net.mingsoft.base.action.BaseAction
根据当前请求的特征,判断该请求是否来自手机终端,主要检测特殊的头信息,以及user-Agent这个header
isMultipart(HttpServletRequest) - 类 中的方法net.mingsoft.base.resolver.MultipartResolver
这里是处理Multipart http的方法。
isSqlValid(String) - 类 中的静态方法net.mingsoft.base.util.SqlInjectionUtil
sql注入验证
isSuccess() - 类 中的方法net.mingsoft.base.entity.ResultData
判断接口成功状态

L

LOG - 类 中的变量net.mingsoft.base.action.BaseAction
 
LOG - 类 中的变量net.mingsoft.base.biz.impl.BaseBizImpl
 
LOG - 类 中的变量net.mingsoft.base.job.BaseJob
 
LOG - 类 中的静态变量net.mingsoft.base.util.BundleUtil
 

M

msg(String) - 类 中的方法net.mingsoft.base.entity.ResultData
返回信息
MSG_KEY - 类 中的静态变量net.mingsoft.base.entity.ResultData
信息
MSVersion - net.mingsoft.base中的类
 
MSVersion() - 类 的构造器net.mingsoft.base.MSVersion
 
MultipartResolver - net.mingsoft.base.resolver中的类
 
MultipartResolver() - 类 的构造器net.mingsoft.base.resolver.MultipartResolver
 

N

net.mingsoft.base - 程序包 net.mingsoft.base
 
net.mingsoft.base.action - 程序包 net.mingsoft.base.action
 
net.mingsoft.base.biz - 程序包 net.mingsoft.base.biz
 
net.mingsoft.base.biz.impl - 程序包 net.mingsoft.base.biz.impl
 
net.mingsoft.base.constant - 程序包 net.mingsoft.base.constant
 
net.mingsoft.base.constant.e - 程序包 net.mingsoft.base.constant.e
 
net.mingsoft.base.dao - 程序包 net.mingsoft.base.dao
 
net.mingsoft.base.entity - 程序包 net.mingsoft.base.entity
 
net.mingsoft.base.job - 程序包 net.mingsoft.base.job
 
net.mingsoft.base.resolver - 程序包 net.mingsoft.base.resolver
 
net.mingsoft.base.util - 程序包 net.mingsoft.base.util
 

O

order - 类 中的变量net.mingsoft.base.entity.BaseEntity
排序方式
orderBy - 类 中的变量net.mingsoft.base.entity.BaseEntity
排序字段

P

PropertiesUtil - net.mingsoft.base.util中的类
读取Properties综合类,默认绑定到classpath下的config.properties文件。
PropertiesUtil() - 类 的构造器net.mingsoft.base.util.PropertiesUtil
 

Q

query(BaseEntity) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
查询,如果使用数据权限控制,推荐使用当前方法
query(BaseEntity) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
query(BaseEntity) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
查询
queryAll() - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
已过时。
queryAll() - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
queryAll() - 接口 中的方法net.mingsoft.base.dao.IBaseDao
已过时。
queryByPage(int, int, String, boolean) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
已过时。
queryBySQL(String, List<String>, Map) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
动态sql查询
queryBySQL(String, List<String>, Map, Integer, Integer) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
动态sql查询
queryBySQL(String, List<String>, Map, List<Map>) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
动态sql查询
queryBySQL(String, List<String>, Map, List<Map>, Integer, Integer) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
动态sql查询
queryBySQL(String, List<String>, Map, List<Map>, String, String) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
动态sql查询
queryBySQL(String, List<String>, Map, List<Map>, Integer, Integer, String, String) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
动态sql查询
queryBySQL(String, List, Map, Integer, Integer) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
queryBySQL(String, List, Map) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
queryBySQL(String, List<String>, Map, List<Map>) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
queryBySQL(String, List<String>, Map, List<Map>, Integer, Integer) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
queryBySQL(String, List<String>, Map, List<Map>, String, String) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
queryBySQL(String, List<String>, Map, List<Map>, Integer, Integer, String, String) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
queryBySQL(String, List<String>, Map, List<Map>, Integer, Integer, String, String) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
SQL动态sql查询
queryCount() - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
已过时。
queryCount() - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
已过时。
queryCount() - 接口 中的方法net.mingsoft.base.dao.IBaseDao
已过时。

R

remarks - 类 中的变量net.mingsoft.base.entity.BaseEntity
备注
rendering(Map, String) - 类 中的静态方法net.mingsoft.base.util.FtlUtil
根据文本内容渲染模板
RESOURCES - 类 中的静态变量net.mingsoft.base.constant.Const
action层对应的国际化资源文件
RESULT_KEY - 类 中的静态变量net.mingsoft.base.entity.ResultData
请求状态
ResultData - net.mingsoft.base.entity中的类
 
ResultData() - 类 的构造器net.mingsoft.base.entity.ResultData
 

S

saveBatch(List) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
已过时。
saveBatch(List) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
saveBatch(List) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
已过时。
saveEntity(BaseEntity) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
已过时。
saveEntity(BaseEntity) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
saveEntity(BaseEntity) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
已过时。
SEPARATOR - 类 中的静态变量net.mingsoft.base.constant.Const
URL路径符
setCreateBy(String) - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
setCreateDate(Date) - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
setDel(DeleteEnum) - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
setDel(Integer) - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
setExcludeUrls(String) - 类 中的方法net.mingsoft.base.resolver.MultipartResolver
 
setId(String) - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
setIntegerId(Integer) - 类 中的方法net.mingsoft.base.entity.BaseEntity
方便业务层设置id
setIntId(int) - 类 中的方法net.mingsoft.base.entity.BaseEntity
方便业务层设置id
setOrder(String) - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
setOrderBy(String) - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
setRemarks(String) - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
setSqlDataScope(String) - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
setSqlWhere(String) - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
setUpdateBy(String) - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
setUpdateDate(Date) - 类 中的方法net.mingsoft.base.entity.BaseEntity
 
setValue(String, String, String) - 类 中的方法net.mingsoft.base.util.PropertiesUtil
设置属性值
sqlDataScope - 类 中的变量net.mingsoft.base.entity.BaseEntity
自定义SQL where条件,需要配合对应dao.xml使用
SqlInjectionUtil - net.mingsoft.base.util中的类
SQL注入工具类
SqlInjectionUtil() - 类 的构造器net.mingsoft.base.util.SqlInjectionUtil
 
sqlWhere - 类 中的变量net.mingsoft.base.entity.BaseEntity
自定义SQL where条件,需要配合对应dao.xml使用
success() - 类 中的方法net.mingsoft.base.entity.ResultData
成功返回
success(Object) - 类 中的方法net.mingsoft.base.entity.ResultData
成功返回
success(String, Object) - 类 中的方法net.mingsoft.base.entity.ResultData
成功返回

T

toInt() - 接口 中的方法net.mingsoft.base.constant.e.BaseEnum
返回该对象的整型表示
toInt() - 枚举 中的方法net.mingsoft.base.constant.e.DeleteEnum
 
toString() - 接口 中的方法net.mingsoft.base.constant.e.BaseCookieEnum
返回该对象的字符串表示
toString() - 接口 中的方法net.mingsoft.base.constant.e.BaseEnum
返回该对象的字符串表示
toString() - 接口 中的方法net.mingsoft.base.constant.e.BaseSessionEnum
返回该对象的字符串表示
toString() - 枚举 中的方法net.mingsoft.base.constant.e.DeleteEnum
 

U

updateBy - 类 中的变量net.mingsoft.base.entity.BaseEntity
最后更新用户编号
updateBySQL(String, Map, Map) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
动态SQL更新
updateBySQL(String, Map, Map) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
updateBySQL(String, Map, Map) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
SQL动态SQL更新
updateCache() - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
更新缓存 使用场景:当前这个类存在数据缓存,使用了mybitsPlus的更新、保存等方法没有刷新数据缓存, 调用该方法需要dao xml中实现一个更新方法 xml示例: UPDATE table set del=0 where del=-1
updateCache() - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
updateCache() - 接口 中的方法net.mingsoft.base.dao.IBaseDao
更新缓存 使用场景:当前这个类存在数据缓存,使用了mybitsPlus的更新、保存等方法没有刷新数据缓存, 调用该方法需要dao xml中实现一个更新方法 xml示例: UPDATE table set del=0 where del=-1
updateDate - 类 中的变量net.mingsoft.base.entity.BaseEntity
最后更新日期
updateEntity(BaseEntity) - 接口 中的方法net.mingsoft.base.biz.IBaseBiz
已过时。
updateEntity(BaseEntity) - 类 中的方法net.mingsoft.base.biz.impl.BaseBizImpl
 
updateEntity(BaseEntity) - 接口 中的方法net.mingsoft.base.dao.IBaseDao
已过时。
UTF8 - 类 中的静态变量net.mingsoft.base.constant.Const
默认编码格式

V

valueOf(String) - 枚举 中的静态方法net.mingsoft.base.constant.e.DeleteEnum
返回带有指定名称的该类型的枚举常量。
values() - 枚举 中的静态方法net.mingsoft.base.constant.e.DeleteEnum
按照声明该枚举类型的常量的顺序, 返回 包含这些常量的数组。
A B C D E F G I L M N O P Q R S T U V 
跳过导航链接

Copyright © 2023. All rights reserved.