Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
16a62526
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dbeaver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
16a62526
编写于
4月 16, 2016
作者:
S
Serge Rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Attribute transformers model
上级
6f0a8306
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
98 addition
and
12 deletion
+98
-12
plugins/org.jkiss.dbeaver.core/plugin.xml
plugins/org.jkiss.dbeaver.core/plugin.xml
+18
-1
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/data/DBDAttributeBinding.java
...src/org/jkiss/dbeaver/model/data/DBDAttributeBinding.java
+2
-2
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/data/DBDAttributeTransformer.java
...org/jkiss/dbeaver/model/data/DBDAttributeTransformer.java
+6
-1
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/transformers/ArrayAttributeTransformer.java
...del/impl/data/transformers/ArrayAttributeTransformer.java
+2
-1
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/transformers/ComplexTypeAttributeTransformer.java
...pl/data/transformers/ComplexTypeAttributeTransformer.java
+2
-1
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/transformers/EpochTimeAttributeTransformer.java
...impl/data/transformers/EpochTimeAttributeTransformer.java
+2
-1
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/transformers/MapAttributeTransformer.java
...model/impl/data/transformers/MapAttributeTransformer.java
+2
-1
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/transformers/RadixAttributeTransformer.java
...del/impl/data/transformers/RadixAttributeTransformer.java
+60
-0
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/virtual/DBVTransformSettings.java
...org/jkiss/dbeaver/model/virtual/DBVTransformSettings.java
+3
-3
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/virtual/DBVUtils.java
...r.model/src/org/jkiss/dbeaver/model/virtual/DBVUtils.java
+1
-1
未找到文件。
plugins/org.jkiss.dbeaver.core/plugin.xml
浏览文件 @
16a62526
...
...
@@ -2401,8 +2401,25 @@
id=
"org.jkiss.dbeaver.core.EpochTimeAttributeTransformer"
name=
"Epoch Time"
description=
"Evaluate integer value as timestamp in Epoch (C, Unix, Java, etc) time"
applyByDefault=
"false"
>
applyByDefault=
"false"
custom=
"true"
>
<type
kind=
"NUMERIC"
/>
<propertyGroup
label=
"Properties"
>
<property
id=
"unit"
label=
"Unit"
type=
"string"
description=
"Measure unit - seconds, milliseconds, etc"
defaultValue=
"milliseconds"
required=
"true"
validValues=
"seconds,milliseconds,nanoseconds"
/>
</propertyGroup>
</transformer>
<transformer
class=
"org.jkiss.dbeaver.model.impl.data.transformers.RadixAttributeTransformer"
id=
"org.jkiss.dbeaver.core.RadixAttributeTransformer"
name=
"Number Radix"
description=
"Represents numbers in a specified radix"
applyByDefault=
"false"
custom=
"true"
>
<type
kind=
"NUMERIC"
/>
<propertyGroup
label=
"Properties"
>
<property
id=
"radix"
label=
"Radix"
type=
"integer"
description=
"Number radix"
defaultValue=
"10"
required=
"true"
validValues=
"2,8,10,16,32"
/>
<property
id=
"prefix"
label=
"Show prefix"
type=
"boolean"
description=
"Shows radix prefix (0x for hex)"
defaultValue=
"false"
required=
"true"
/>
</propertyGroup>
</transformer>
</extension>
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/data/DBDAttributeBinding.java
浏览文件 @
16a62526
...
...
@@ -254,11 +254,11 @@ public abstract class DBDAttributeBinding implements DBSObject, DBSAttributeBase
public
void
lateBinding
(
@NotNull
DBCSession
session
,
List
<
Object
[]>
rows
)
throws
DBException
{
DBSAttributeBase
attribute
=
getAttribute
();
final
DBDAttributeTransformer
[]
transformers
=
DBVUtils
.
findAttributeTransformers
(
this
,
false
);
final
DBDAttributeTransformer
[]
transformers
=
DBVUtils
.
findAttributeTransformers
(
this
,
null
);
if
(
transformers
!=
null
)
{
session
.
getProgressMonitor
().
subTask
(
"Transform attribute '"
+
attribute
.
getName
()
+
"'"
);
for
(
DBDAttributeTransformer
transformer
:
transformers
)
{
transformer
.
transformAttribute
(
session
,
this
,
rows
);
transformer
.
transformAttribute
(
session
,
this
,
rows
,
null
);
}
}
}
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/data/DBDAttributeTransformer.java
浏览文件 @
16a62526
...
...
@@ -23,6 +23,7 @@ import org.jkiss.dbeaver.DBException;
import
org.jkiss.dbeaver.model.exec.DBCSession
;
import
java.util.List
;
import
java.util.Map
;
/**
* DBD binding transformer.
...
...
@@ -33,7 +34,11 @@ public interface DBDAttributeTransformer
/**
* Transforms attribute
*/
void
transformAttribute
(
@NotNull
DBCSession
session
,
@NotNull
DBDAttributeBinding
attribute
,
@NotNull
List
<
Object
[]>
rows
)
void
transformAttribute
(
@NotNull
DBCSession
session
,
@NotNull
DBDAttributeBinding
attribute
,
@NotNull
List
<
Object
[]>
rows
,
@NotNull
Map
<
String
,
Object
>
options
)
throws
DBException
;
}
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/transformers/ArrayAttributeTransformer.java
浏览文件 @
16a62526
...
...
@@ -28,6 +28,7 @@ import org.jkiss.dbeaver.model.struct.DBSEntity;
import
org.jkiss.dbeaver.model.struct.DBSTypedObjectEx
;
import
java.util.List
;
import
java.util.Map
;
/**
* Transforms attribute of array type into hierarchy of attributes
...
...
@@ -35,7 +36,7 @@ import java.util.List;
public
class
ArrayAttributeTransformer
implements
DBDAttributeTransformer
{
@Override
public
void
transformAttribute
(
@NotNull
DBCSession
session
,
@NotNull
DBDAttributeBinding
attribute
,
@NotNull
List
<
Object
[]>
rows
)
throws
DBException
{
public
void
transformAttribute
(
@NotNull
DBCSession
session
,
@NotNull
DBDAttributeBinding
attribute
,
@NotNull
List
<
Object
[]>
rows
,
Map
<
String
,
Object
>
options
)
throws
DBException
{
DBSDataType
collectionType
;
if
(
attribute
.
getAttribute
()
instanceof
DBSTypedObjectEx
)
{
collectionType
=
((
DBSTypedObjectEx
)
attribute
.
getAttribute
()).
getDataType
();
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/transformers/ComplexTypeAttributeTransformer.java
浏览文件 @
16a62526
...
...
@@ -32,6 +32,7 @@ import org.jkiss.utils.CommonUtils;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
/**
* Transforms attribute of complex type into hierarchy of attributes
...
...
@@ -39,7 +40,7 @@ import java.util.List;
public
class
ComplexTypeAttributeTransformer
implements
DBDAttributeTransformer
{
@Override
public
void
transformAttribute
(
@NotNull
DBCSession
session
,
@NotNull
DBDAttributeBinding
attribute
,
@NotNull
List
<
Object
[]>
rows
)
throws
DBException
{
public
void
transformAttribute
(
@NotNull
DBCSession
session
,
@NotNull
DBDAttributeBinding
attribute
,
@NotNull
List
<
Object
[]>
rows
,
Map
<
String
,
Object
>
options
)
throws
DBException
{
DBSDataType
dataType
;
if
(
attribute
.
getAttribute
()
instanceof
DBSTypedObjectEx
)
{
dataType
=
((
DBSTypedObjectEx
)
attribute
.
getAttribute
()).
getDataType
();
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/transformers/EpochTimeAttributeTransformer.java
浏览文件 @
16a62526
...
...
@@ -30,6 +30,7 @@ import java.text.SimpleDateFormat;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Locale
;
import
java.util.Map
;
/**
* Transforms numeric attribute value into epoch time
...
...
@@ -37,7 +38,7 @@ import java.util.Locale;
public
class
EpochTimeAttributeTransformer
implements
DBDAttributeTransformer
{
@Override
public
void
transformAttribute
(
@NotNull
DBCSession
session
,
@NotNull
DBDAttributeBinding
attribute
,
@NotNull
List
<
Object
[]>
rows
)
throws
DBException
{
public
void
transformAttribute
(
@NotNull
DBCSession
session
,
@NotNull
DBDAttributeBinding
attribute
,
@NotNull
List
<
Object
[]>
rows
,
Map
<
String
,
Object
>
options
)
throws
DBException
{
// TODO: Change attribute type (to DATETIME)
attribute
.
setValueHandler
(
new
EpochValueHandler
(
attribute
.
getValueHandler
()));
}
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/transformers/MapAttributeTransformer.java
浏览文件 @
16a62526
...
...
@@ -28,6 +28,7 @@ import org.jkiss.utils.Pair;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
/**
* Transforms attribute of map type into hierarchy of attributes
...
...
@@ -35,7 +36,7 @@ import java.util.List;
public
class
MapAttributeTransformer
implements
DBDAttributeTransformer
{
@Override
public
void
transformAttribute
(
@NotNull
DBCSession
session
,
@NotNull
DBDAttributeBinding
attribute
,
@NotNull
List
<
Object
[]>
rows
)
throws
DBException
{
public
void
transformAttribute
(
@NotNull
DBCSession
session
,
@NotNull
DBDAttributeBinding
attribute
,
@NotNull
List
<
Object
[]>
rows
,
Map
<
String
,
Object
>
options
)
throws
DBException
{
resolveMapsFromData
(
session
,
attribute
,
rows
);
}
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/transformers/RadixAttributeTransformer.java
0 → 100644
浏览文件 @
16a62526
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License (version 2)
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package
org.jkiss.dbeaver.model.impl.data.transformers
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.data.DBDAttributeBinding
;
import
org.jkiss.dbeaver.model.data.DBDAttributeTransformer
;
import
org.jkiss.dbeaver.model.data.DBDDisplayFormat
;
import
org.jkiss.dbeaver.model.data.DBDValueHandler
;
import
org.jkiss.dbeaver.model.exec.DBCSession
;
import
org.jkiss.dbeaver.model.impl.data.ProxyValueHandler
;
import
org.jkiss.dbeaver.model.struct.DBSTypedObject
;
import
java.util.List
;
import
java.util.Map
;
/**
* Transforms numeric attribute value into string in a specified radix
*/
public
class
RadixAttributeTransformer
implements
DBDAttributeTransformer
{
@Override
public
void
transformAttribute
(
@NotNull
DBCSession
session
,
@NotNull
DBDAttributeBinding
attribute
,
@NotNull
List
<
Object
[]>
rows
,
Map
<
String
,
Object
>
options
)
throws
DBException
{
attribute
.
setValueHandler
(
new
RadixValueHandler
(
attribute
.
getValueHandler
()));
}
private
class
RadixValueHandler
extends
ProxyValueHandler
{
public
RadixValueHandler
(
DBDValueHandler
target
)
{
super
(
target
);
}
@NotNull
@Override
public
String
getValueDisplayString
(
@NotNull
DBSTypedObject
column
,
@Nullable
Object
value
,
@NotNull
DBDDisplayFormat
format
)
{
if
(
value
instanceof
Number
)
{
return
Long
.
toHexString
(((
Number
)
value
).
longValue
());
}
return
DBUtils
.
getDefaultValueDisplayString
(
value
,
format
);
}
}
}
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/virtual/DBVTransformSettings.java
浏览文件 @
16a62526
...
...
@@ -31,7 +31,7 @@ import java.util.Set;
public
class
DBVTransformSettings
{
private
Set
<
String
>
excludedTransformers
,
includedTransformers
;
private
String
customTransformer
;
private
Map
<
String
,
String
>
rendererPropertie
s
;
private
Map
<
String
,
Object
>
transformOption
s
;
public
Set
<
String
>
getExcludedTransformers
()
{
return
excludedTransformers
;
...
...
@@ -70,8 +70,8 @@ public class DBVTransformSettings {
return
customTransformer
;
}
public
Map
<
String
,
String
>
getRendererPropertie
s
()
{
return
rendererPropertie
s
;
public
Map
<
String
,
Object
>
getTransformOption
s
()
{
return
transformOption
s
;
}
public
boolean
hasValuableData
()
{
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/virtual/DBVUtils.java
浏览文件 @
16a62526
...
...
@@ -71,7 +71,7 @@ public abstract class DBVUtils {
}
@Nullable
public
static
DBDAttributeTransformer
[]
findAttributeTransformers
(
DBDAttributeBinding
binding
,
b
oolean
custom
)
public
static
DBDAttributeTransformer
[]
findAttributeTransformers
(
DBDAttributeBinding
binding
,
B
oolean
custom
)
{
DBPDataSource
dataSource
=
binding
.
getDataSource
();
DBPDataSourceContainer
container
=
dataSource
.
getContainer
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录