您的浏览器已禁用 JavaScript。
跳过导航链接
概览
程序包
类
使用
树
已过时
索引
帮助
上一个
下一个
框架
无框架
所有类
A
C
D
E
F
G
I
M
N
O
P
R
S
T
V
A
Arguments
-
org.jeecgframework.minidao.annotation
中的注释类型
规则: 1.
C
checkMethod(Method[], String)
- 类 中的静态方法org.jeecgframework.minidao.aspect.
MinidaoInterceptor
判断该方法是否存在
Classes
-
org.jeecgframework.minidao.util
中的类
依赖javassit
的工具类,获取方法的参数名
clear()
- 类 中的方法org.jeecgframework.minidao.spring.map.
MiniDaoLinkedMap
clearDataSourceType()
- 类 中的静态方法org.jeecgframework.minidao.datasource.
DataSourceContextHolder
containsKey(Object)
- 类 中的方法org.jeecgframework.minidao.spring.map.
MiniDaoLinkedMap
convertKey(String)
- 类 中的方法org.jeecgframework.minidao.spring.map.
MiniDaoLinkedMap
createColumnMap(int)
- 类 中的方法org.jeecgframework.minidao.spring.rowMapper.
MiniColumnMapRowMapper
createColumnMap(int)
- 类 中的方法org.jeecgframework.minidao.spring.rowMapper.
MiniColumnOriginalMapRowMapper
createPageSql(String, String, int, int)
- 类 中的静态方法org.jeecgframework.minidao.util.
MiniDaoUtil
按照数据库类型,封装SQL
currency(Object)
- 类 中的方法org.jeecgframework.minidao.util.
SimpleFormat
格式化为金额
D
DATABSE_TYPE_MYSQL
- 类 中的静态变量org.jeecgframework.minidao.util.
MiniDaoUtil
数据库类型
DATABSE_TYPE_ORACLE
- 类 中的静态变量org.jeecgframework.minidao.util.
MiniDaoUtil
DATABSE_TYPE_POSTGRE
- 类 中的静态变量org.jeecgframework.minidao.util.
MiniDaoUtil
DATABSE_TYPE_SQLSERVER
- 类 中的静态变量org.jeecgframework.minidao.util.
MiniDaoUtil
DataSourceContextHolder
-
org.jeecgframework.minidao.datasource
中的类
类名:DataSourceContextHolder.java 功能:获得和设置上下文环境的类,主要负责改变上下文数据源的名称 DataSourceContextHolder
DataSourceContextHolder()
- 类 的构造器org.jeecgframework.minidao.datasource.
DataSourceContextHolder
DataSourceType
-
org.jeecgframework.minidao.datasource
中的枚举
date(Object, String)
- 类 中的方法org.jeecgframework.minidao.util.
SimpleFormat
格式化为日期
date(Object)
- 类 中的方法org.jeecgframework.minidao.util.
SimpleFormat
格式化为长日期
datetime(Object)
- 类 中的方法org.jeecgframework.minidao.util.
SimpleFormat
格式化为长时间
determineCurrentLookupKey()
- 类 中的方法org.jeecgframework.minidao.datasource.
DynamicDataSource
DIAN
- 类 中的静态变量org.jeecgframework.minidao.util.
SqlServerParse
DIAN_TMP
- 类 中的静态变量org.jeecgframework.minidao.util.
SqlServerParse
doScan(String...)
- 类 中的方法org.jeecgframework.minidao.factory.
MiniDaoClassPathMapperScanner
dynamic
- 类 中的静态变量org.jeecgframework.minidao.util.
SqlServerParse
匹配:user.name这样的参数表达式
DynamicDataSource
-
org.jeecgframework.minidao.datasource
中的类
类名:DynamicDataSource.java 功能:动态数据源类
DynamicDataSource()
- 类 的构造器org.jeecgframework.minidao.datasource.
DynamicDataSource
E
EmptyInterceptor
-
org.jeecgframework.minidao.aspect
中的接口
F
FreemarkerParseFactory
-
org.jeecgframework.minidao.util
中的类
FreemarkerParseFactory()
- 类 的构造器org.jeecgframework.minidao.util.
FreemarkerParseFactory
G
generateId()
- 类 中的静态方法org.jeecgframework.minidao.util.
SnowflakeIdWorker
静态工具类
get(Object)
- 类 中的方法org.jeecgframework.minidao.spring.map.
MiniDaoLinkedMap
getColumnKey(String)
- 类 中的方法org.jeecgframework.minidao.spring.rowMapper.
MiniColumnMapRowMapper
getColumnKey(String)
- 类 中的方法org.jeecgframework.minidao.spring.rowMapper.
MiniColumnOriginalMapRowMapper
getColumnValue(ResultSet, int)
- 类 中的方法org.jeecgframework.minidao.spring.rowMapper.
MiniColumnMapRowMapper
getColumnValue(ResultSet, int)
- 类 中的方法org.jeecgframework.minidao.spring.rowMapper.
MiniColumnOriginalMapRowMapper
getDataSourceType()
- 类 中的静态方法org.jeecgframework.minidao.datasource.
DataSourceContextHolder
getDbType()
- 类 中的方法org.jeecgframework.minidao.aop.
MiniDaoHandler
getEmptyInterceptor()
- 类 中的方法org.jeecgframework.minidao.aop.
MiniDaoHandler
getEmptyInterceptor()
- 类 中的方法org.jeecgframework.minidao.factory.
MiniDaoBeanScannerConfigurer
getFirstSmall(String)
- 类 中的静态方法org.jeecgframework.minidao.util.
MiniDaoUtil
返回首字母变为小写的字符串
getInStrs(List<String>)
- 类 中的方法org.jeecgframework.minidao.util.
SimpleFormat
格式化为in所需参数
getJdbcTemplate()
- 类 中的方法org.jeecgframework.minidao.aop.
MiniDaoHandler
getKeyListByContent(String)
- 类 中的静态方法org.jeecgframework.minidao.util.
SqlServerParse
按照动态内容的参数出现顺序,将参数放到List中
getKeyType()
- 类 中的方法org.jeecgframework.minidao.aop.
MiniDaoHandler
getMethodParameterNamesByAnnotation(Method)
- 类 中的静态方法org.jeecgframework.minidao.util.
ParameterNameUtils
获取指定方法的参数名
getMethodParamNames(CtMethod)
- 类 中的静态方法org.jeecgframework.minidao.util.
Classes
获取方法参数名称
getMethodParamNames(Class<?>, String, Class<?>...)
- 类 中的静态方法org.jeecgframework.minidao.util.
Classes
获取方法参数名称,按给定的参数类型匹配方法
getMethodParamNames(Class<?>, String)
- 类 中的静态方法org.jeecgframework.minidao.util.
Classes
获取方法参数名称,匹配同名的某一个方法
getMethodSqlLogicJar(String)
- 类 中的静态方法org.jeecgframework.minidao.util.
MiniDaoUtil
根据SQL_URL读取SQL文件内容
getNamedParameterJdbcTemplate()
- 类 中的方法org.jeecgframework.minidao.aop.
MiniDaoHandler
getObject()
- 类 中的方法org.jeecgframework.minidao.factory.
MiniDaoBeanFactory
getObjectType()
- 类 中的方法org.jeecgframework.minidao.factory.
MiniDaoBeanFactory
getPage()
- 类 中的方法org.jeecgframework.minidao.pojo.
MiniDaoPage
getPages()
- 类 中的方法org.jeecgframework.minidao.pojo.
MiniDaoPage
getProxy()
- 类 中的方法org.jeecgframework.minidao.factory.
MiniDaoBeanFactory
getResults()
- 类 中的方法org.jeecgframework.minidao.pojo.
MiniDaoPage
getRows()
- 类 中的方法org.jeecgframework.minidao.pojo.
MiniDaoPage
getTotal()
- 类 中的方法org.jeecgframework.minidao.pojo.
MiniDaoPage
getValue()
- 枚举 中的方法org.jeecgframework.minidao.annotation.type.
IdType
I
IdAutoGenerator
-
org.jeecgframework.minidao.annotation
中的注释类型
IdType
-
org.jeecgframework.minidao.annotation.type
中的枚举
主键策略
INF_METHOD_ACTIVE
- 类 中的静态变量org.jeecgframework.minidao.def.
MiniDaoConstants
接口方法定義規則 添加:insert,add,create 添加:update,modify,store 刪除:delete,remove 檢索:以上各单词之外
INF_METHOD_BATCH
- 类 中的静态变量org.jeecgframework.minidao.def.
MiniDaoConstants
invoke(Object, Method, Object[])
- 类 中的方法org.jeecgframework.minidao.aop.
MiniDaoHandler
isAbstract(Method)
- 类 中的静态方法org.jeecgframework.minidao.util.
MiniDaoUtil
判断方法是否是抽象方法
isCandidateComponent(AnnotatedBeanDefinition)
- 类 中的方法org.jeecgframework.minidao.factory.
MiniDaoClassPathMapperScanner
默认不允许接口的,这里重写,覆盖下,另外默认会Scan @Component 这样所以的被@Component 注解的都会Scan
isExistTemplate(String)
- 类 中的静态方法org.jeecgframework.minidao.util.
FreemarkerParseFactory
判断模板是否存在
isFormatSql()
- 类 中的方法org.jeecgframework.minidao.aop.
MiniDaoHandler
isSingleton()
- 类 中的方法org.jeecgframework.minidao.factory.
MiniDaoBeanFactory
isWrapClass(Class<?>)
- 类 中的静态方法org.jeecgframework.minidao.util.
MiniDaoUtil
判断Class是否是基本包装类型
M
main(String[])
- 类 中的静态方法org.jeecgframework.minidao.util.
Classes
main(String[])
- 类 中的静态方法org.jeecgframework.minidao.util.
MiniDaoUtil
main(String[])
- 类 中的静态方法org.jeecgframework.minidao.util.
ParameterNameUtils
main(String[])
- 类 中的静态方法org.jeecgframework.minidao.util.
SnowflakeIdWorker
测试
main(String[])
- 类 中的静态方法org.jeecgframework.minidao.util.
SqlServerParse
mapRow(ResultSet, int)
- 类 中的方法org.jeecgframework.minidao.spring.rowMapper.
MiniColumnMapRowMapper
mapRow(ResultSet, int)
- 类 中的方法org.jeecgframework.minidao.spring.rowMapper.
MiniColumnOriginalMapRowMapper
method1(String, String)
- 类 中的方法org.jeecgframework.minidao.util.
ParameterNameUtils
MiniColumnMapRowMapper
-
org.jeecgframework.minidao.spring.rowMapper
中的类
使用小写的key 作为map的关键字
MiniColumnMapRowMapper()
- 类 的构造器org.jeecgframework.minidao.spring.rowMapper.
MiniColumnMapRowMapper
MiniColumnOriginalMapRowMapper
-
org.jeecgframework.minidao.spring.rowMapper
中的类
使用默认的key作为关键字
MiniColumnOriginalMapRowMapper()
- 类 的构造器org.jeecgframework.minidao.spring.rowMapper.
MiniColumnOriginalMapRowMapper
MiniDao
-
org.jeecgframework.minidao.annotation
中的注释类型
MiniDaoBeanFactory
<
T
> -
org.jeecgframework.minidao.factory
中的类
持久层的的工厂
MiniDaoBeanFactory()
- 类 的构造器org.jeecgframework.minidao.factory.
MiniDaoBeanFactory
MiniDaoBeanScannerConfigurer
-
org.jeecgframework.minidao.factory
中的类
扫描配置文件
MiniDaoBeanScannerConfigurer()
- 类 的构造器org.jeecgframework.minidao.factory.
MiniDaoBeanScannerConfigurer
MiniDaoClassPathMapperScanner
-
org.jeecgframework.minidao.factory
中的类
Dao扫描层
MiniDaoClassPathMapperScanner(BeanDefinitionRegistry, Class<? extends Annotation>)
- 类 的构造器org.jeecgframework.minidao.factory.
MiniDaoClassPathMapperScanner
MiniDaoConstants
-
org.jeecgframework.minidao.def
中的类
MiniDaoConstants()
- 类 的构造器org.jeecgframework.minidao.def.
MiniDaoConstants
MiniDaoHandler
-
org.jeecgframework.minidao.aop
中的类
MiniDaoHandler()
- 类 的构造器org.jeecgframework.minidao.aop.
MiniDaoHandler
MinidaoInterceptor
-
org.jeecgframework.minidao.aspect
中的类
minidao拦截器实现
MinidaoInterceptor()
- 类 的构造器org.jeecgframework.minidao.aspect.
MinidaoInterceptor
MiniDaoLinkedMap
-
org.jeecgframework.minidao.spring.map
中的类
提供默认小写作为Key的Map
MiniDaoLinkedMap()
- 类 的构造器org.jeecgframework.minidao.spring.map.
MiniDaoLinkedMap
MiniDaoLinkedMap(int)
- 类 的构造器org.jeecgframework.minidao.spring.map.
MiniDaoLinkedMap
MiniDaoLinkedMap(int, Locale)
- 类 的构造器org.jeecgframework.minidao.spring.map.
MiniDaoLinkedMap
MiniDaoLinkedMap(Locale)
- 类 的构造器org.jeecgframework.minidao.spring.map.
MiniDaoLinkedMap
MiniDaoPage
<
T
> -
org.jeecgframework.minidao.pojo
中的类
MiniDaoPage()
- 类 的构造器org.jeecgframework.minidao.pojo.
MiniDaoPage
MiniDaoUtil
-
org.jeecgframework.minidao.util
中的类
MiniDaoUtil()
- 类 的构造器org.jeecgframework.minidao.util.
MiniDaoUtil
MYSQL_SQL
- 类 中的静态变量org.jeecgframework.minidao.util.
MiniDaoUtil
分页SQL
N
nextId()
- 类 中的方法org.jeecgframework.minidao.util.
SnowflakeIdWorker
获得下一个ID (该方法是线程安全的)
number(Object)
- 类 中的方法org.jeecgframework.minidao.util.
SimpleFormat
格式化为0.00的数字
number(Object, String)
- 类 中的方法org.jeecgframework.minidao.util.
SimpleFormat
格式化为数字
O
onInsert(Field[], Object)
- 接口 中的方法org.jeecgframework.minidao.aspect.
EmptyInterceptor
插入拦截
onInsert(Field[], Object)
- 类 中的方法org.jeecgframework.minidao.aspect.
MinidaoInterceptor
onUpdate(Field[], Object)
- 接口 中的方法org.jeecgframework.minidao.aspect.
EmptyInterceptor
修改拦截
onUpdate(Field[], Object)
- 类 中的方法org.jeecgframework.minidao.aspect.
MinidaoInterceptor
ORACLE_SQL
- 类 中的静态变量org.jeecgframework.minidao.util.
MiniDaoUtil
orderByHashParameters(List<OrderByElement>)
- 类 中的方法org.jeecgframework.minidao.util.
SqlServerParse
org.jeecgframework.minidao.annotation
- 程序包 org.jeecgframework.minidao.annotation
org.jeecgframework.minidao.annotation.type
- 程序包 org.jeecgframework.minidao.annotation.type
org.jeecgframework.minidao.aop
- 程序包 org.jeecgframework.minidao.aop
org.jeecgframework.minidao.aspect
- 程序包 org.jeecgframework.minidao.aspect
org.jeecgframework.minidao.datasource
- 程序包 org.jeecgframework.minidao.datasource
org.jeecgframework.minidao.def
- 程序包 org.jeecgframework.minidao.def
org.jeecgframework.minidao.factory
- 程序包 org.jeecgframework.minidao.factory
org.jeecgframework.minidao.pojo
- 程序包 org.jeecgframework.minidao.pojo
org.jeecgframework.minidao.spring.map
- 程序包 org.jeecgframework.minidao.spring.map
org.jeecgframework.minidao.spring.rowMapper
- 程序包 org.jeecgframework.minidao.spring.rowMapper
org.jeecgframework.minidao.util
- 程序包 org.jeecgframework.minidao.util
P
Param
-
org.jeecgframework.minidao.annotation
中的注释类型
minidao参数注解
ParameterNameUtils
-
org.jeecgframework.minidao.util
中的类
获取方法参数注解
ParameterNameUtils()
- 类 的构造器org.jeecgframework.minidao.util.
ParameterNameUtils
pareSetName(String)
- 类 中的静态方法org.jeecgframework.minidao.aspect.
MinidaoInterceptor
拼接某属性set 方法
parseTemplate(String, Map<String, Object>)
- 类 中的静态方法org.jeecgframework.minidao.util.
FreemarkerParseFactory
解析ftl模板
parseTemplateContent(String, Map<String, Object>)
- 类 中的静态方法org.jeecgframework.minidao.util.
FreemarkerParseFactory
解析ftl
percent(Object)
- 类 中的方法org.jeecgframework.minidao.util.
SimpleFormat
格式化为百分比
POSTGRE_SQL
- 类 中的静态变量org.jeecgframework.minidao.util.
MiniDaoUtil
postProcessBeanDefinitionRegistry(BeanDefinitionRegistry)
- 类 中的方法org.jeecgframework.minidao.factory.
MiniDaoBeanScannerConfigurer
postProcessBeanFactory(ConfigurableListableBeanFactory)
- 类 中的方法org.jeecgframework.minidao.factory.
MiniDaoBeanScannerConfigurer
procedureParamsList(Method, Object[])
- 类 中的方法org.jeecgframework.minidao.aop.
MiniDaoHandler
将解析参数的代码单独抽取出来
processFromItem(FromItem)
- 类 中的方法org.jeecgframework.minidao.util.
SqlServerParse
processPlainSelect(PlainSelect)
- 类 中的方法org.jeecgframework.minidao.util.
SqlServerParse
processSelectBody(SelectBody)
- 类 中的方法org.jeecgframework.minidao.util.
SqlServerParse
put(String, Object)
- 类 中的方法org.jeecgframework.minidao.spring.map.
MiniDaoLinkedMap
putAll(Map)
- 类 中的方法org.jeecgframework.minidao.spring.map.
MiniDaoLinkedMap
R
remove(Object)
- 类 中的方法org.jeecgframework.minidao.spring.map.
MiniDaoLinkedMap
removeOrderBy(String)
- 类 中的方法org.jeecgframework.minidao.aop.
MiniDaoHandler
为了兼容SQLServer 去除子查询中的order by (也为了提升分页性能)
removeOrderBy(String)
- 类 中的方法org.jeecgframework.minidao.util.
SqlServerParse
SQLServer去除子查询中的order by
ResultType
-
org.jeecgframework.minidao.annotation
中的注释类型
round(Object)
- 类 中的方法org.jeecgframework.minidao.util.
SimpleFormat
格式化为整数
S
setAnnotation(Class<? extends Annotation>)
- 类 中的方法org.jeecgframework.minidao.factory.
MiniDaoBeanScannerConfigurer
setBasePackage(String)
- 类 中的方法org.jeecgframework.minidao.factory.
MiniDaoBeanScannerConfigurer
setDaoInterface(Class<T>)
- 类 中的方法org.jeecgframework.minidao.factory.
MiniDaoBeanFactory
setDataSourceLookup(DataSourceLookup)
- 类 中的方法org.jeecgframework.minidao.datasource.
DynamicDataSource
setDataSourceType(DataSourceType)
- 类 中的静态方法org.jeecgframework.minidao.datasource.
DataSourceContextHolder
setDbType(String)
- 类 中的方法org.jeecgframework.minidao.aop.
MiniDaoHandler
setDbType(String)
- 类 中的方法org.jeecgframework.minidao.factory.
MiniDaoBeanScannerConfigurer
setDefaultTargetDataSource(Object)
- 类 中的方法org.jeecgframework.minidao.datasource.
DynamicDataSource
setEmptyInterceptor(EmptyInterceptor)
- 类 中的方法org.jeecgframework.minidao.aop.
MiniDaoHandler
setEmptyInterceptor(EmptyInterceptor)
- 类 中的方法org.jeecgframework.minidao.factory.
MiniDaoBeanScannerConfigurer
setFieldValue(Map<Object, Object>, Object)
- 类 中的静态方法org.jeecgframework.minidao.aspect.
MinidaoInterceptor
设置bean 属性值
setFormatSql(boolean)
- 类 中的方法org.jeecgframework.minidao.aop.
MiniDaoHandler
setFormatSql(boolean)
- 类 中的方法org.jeecgframework.minidao.factory.
MiniDaoBeanScannerConfigurer
setJdbcTemplate(JdbcTemplate)
- 类 中的方法org.jeecgframework.minidao.aop.
MiniDaoHandler
setKeyType(String)
- 类 中的方法org.jeecgframework.minidao.aop.
MiniDaoHandler
setKeyType(String)
- 类 中的方法org.jeecgframework.minidao.factory.
MiniDaoBeanScannerConfigurer
setPage(int)
- 类 中的方法org.jeecgframework.minidao.pojo.
MiniDaoPage
setPages(int)
- 类 中的方法org.jeecgframework.minidao.pojo.
MiniDaoPage
setProxy(MiniDaoHandler)
- 类 中的方法org.jeecgframework.minidao.factory.
MiniDaoBeanFactory
setResults(List<T>)
- 类 中的方法org.jeecgframework.minidao.pojo.
MiniDaoPage
setRows(int)
- 类 中的方法org.jeecgframework.minidao.pojo.
MiniDaoPage
setShowSql(boolean)
- 类 中的方法org.jeecgframework.minidao.aop.
MiniDaoHandler
setShowSql(boolean)
- 类 中的方法org.jeecgframework.minidao.factory.
MiniDaoBeanScannerConfigurer
setTargetDataSources(Map<Object, Object>)
- 类 中的方法org.jeecgframework.minidao.datasource.
DynamicDataSource
setTotal(int)
- 类 中的方法org.jeecgframework.minidao.pojo.
MiniDaoPage
SimpleFormat
-
org.jeecgframework.minidao.util
中的类
格式化工具
SimpleFormat()
- 类 的构造器org.jeecgframework.minidao.util.
SimpleFormat
SnowflakeIdWorker
-
org.jeecgframework.minidao.util
中的类
Twitter_Snowflake
SnowFlake的结构如下(每部分用-分开):
0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000
1位标识,由于long基本类型在Java中是带符号的,最高位是符号位,正数是0,负数是1,所以id一般是正数,最高位是0
41位时间截(毫秒级),注意,41位时间截不是存储当前时间的时间截,而是存储时间截的差值(当前时间截 - 开始时间截) 得到的值),这里的的开始时间截,一般是我们的id生成器开始使用的时间,由我们程序来指定的(如下下面程序IdWorker类的startTime属性)。
SnowflakeIdWorker(long, long)
- 类 的构造器org.jeecgframework.minidao.util.
SnowflakeIdWorker
构造函数
Sql
-
org.jeecgframework.minidao.annotation
中的注释类型
SQL_FTL_DTO
- 类 中的静态变量org.jeecgframework.minidao.def.
MiniDaoConstants
方法有且只有一个参数 用户未使用@Arguments 标签 模板中引用参数默认为:dto
SQLSERVER_SQL
- 类 中的静态变量org.jeecgframework.minidao.util.
MiniDaoUtil
SqlServerParse
-
org.jeecgframework.minidao.util
中的类
SQL解析工具
SqlServerParse()
- 类 的构造器org.jeecgframework.minidao.util.
SqlServerParse
T
tilNextMillis(long)
- 类 中的方法org.jeecgframework.minidao.util.
SnowflakeIdWorker
阻塞到下一个毫秒,直到获得新的时间戳
time(Object)
- 类 中的方法org.jeecgframework.minidao.util.
SimpleFormat
格式化为时间
timeGen()
- 类 中的方法org.jeecgframework.minidao.util.
SnowflakeIdWorker
返回以毫秒为单位的当前时间
timestampToString(Object, String)
- 类 中的方法org.jeecgframework.minidao.util.
SimpleFormat
将timestamp格式的字符转换为用户指定格式
Transient
-
org.jeecgframework.minidao.annotation
中的注释类型
非持久化属性
V
valueOf(String)
- 枚举 中的静态方法org.jeecgframework.minidao.annotation.type.
IdType
返回带有指定名称的该类型的枚举常量。
valueOf(String)
- 枚举 中的静态方法org.jeecgframework.minidao.datasource.
DataSourceType
返回带有指定名称的该类型的枚举常量。
values()
- 枚举 中的静态方法org.jeecgframework.minidao.annotation.type.
IdType
按照声明该枚举类型的常量的顺序, 返回 包含这些常量的数组。
values()
- 枚举 中的静态方法org.jeecgframework.minidao.datasource.
DataSourceType
按照声明该枚举类型的常量的顺序, 返回 包含这些常量的数组。
A
C
D
E
F
G
I
M
N
O
P
R
S
T
V
跳过导航链接
概览
程序包
类
使用
树
已过时
索引
帮助
上一个
下一个
框架
无框架
所有类
Copyright © 2021. All rights reserved.