Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
270da14f
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
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,发现更多精彩内容 >>
提交
270da14f
编写于
4月 14, 2018
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#3304 Data transfer - extra output file template variables
上级
d9468902
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
45 addition
and
12 deletion
+45
-12
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/transfer/stream/StreamConsumerPageOutput.java
...eaver/tools/transfer/stream/StreamConsumerPageOutput.java
+7
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/transfer/stream/StreamTransferConsumer.java
...dbeaver/tools/transfer/stream/StreamTransferConsumer.java
+22
-12
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java
...ss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java
+16
-0
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/transfer/stream/StreamConsumerPageOutput.java
浏览文件 @
270da14f
...
...
@@ -88,6 +88,9 @@ public class StreamConsumerPageOutput extends ActiveWizardPage<DataTransferWizar
GridData
gd
=
new
GridData
(
GridData
.
FILL_HORIZONTAL
);
gd
.
horizontalSpan
=
4
;
UIUtils
.
setContentProposalToolTip
(
fileNameText
,
"Output file name pattern"
,
StreamTransferConsumer
.
VARIABLE_DATASOURCE
,
StreamTransferConsumer
.
VARIABLE_CATALOG
,
StreamTransferConsumer
.
VARIABLE_SCHEMA
,
StreamTransferConsumer
.
VARIABLE_TABLE
,
StreamTransferConsumer
.
VARIABLE_TIMESTAMP
,
StreamTransferConsumer
.
VARIABLE_DATE
,
...
...
@@ -101,6 +104,9 @@ public class StreamConsumerPageOutput extends ActiveWizardPage<DataTransferWizar
fileNameText
,
new
TextContentAdapter
(),
new
SimpleContentProposalProvider
(
new
String
[]
{
GeneralUtils
.
variablePattern
(
StreamTransferConsumer
.
VARIABLE_DATASOURCE
),
GeneralUtils
.
variablePattern
(
StreamTransferConsumer
.
VARIABLE_CATALOG
),
GeneralUtils
.
variablePattern
(
StreamTransferConsumer
.
VARIABLE_SCHEMA
),
GeneralUtils
.
variablePattern
(
StreamTransferConsumer
.
VARIABLE_TABLE
),
GeneralUtils
.
variablePattern
(
StreamTransferConsumer
.
VARIABLE_TIMESTAMP
),
GeneralUtils
.
variablePattern
(
StreamTransferConsumer
.
VARIABLE_DATE
),
...
...
@@ -194,6 +200,7 @@ public class StreamConsumerPageOutput extends ActiveWizardPage<DataTransferWizar
boolean
isBinary
=
getWizard
().
getSettings
().
getProcessor
().
isBinaryFormat
();
boolean
clipboard
=
!
isBinary
&&
clipboardCheck
.
getSelection
();
clipboardCheck
.
setEnabled
(!
isBinary
);
directoryText
.
setEnabled
(!
clipboard
);
fileNameText
.
setEnabled
(!
clipboard
);
compressCheckbox
.
setEnabled
(!
clipboard
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/transfer/stream/StreamTransferConsumer.java
浏览文件 @
270da14f
...
...
@@ -40,6 +40,8 @@ import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import
org.jkiss.dbeaver.model.runtime.DBRShellCommand
;
import
org.jkiss.dbeaver.model.sql.SQLDataSource
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.model.struct.rdb.DBSCatalog
;
import
org.jkiss.dbeaver.model.struct.rdb.DBSSchema
;
import
org.jkiss.dbeaver.runtime.ui.DBUserInterface
;
import
org.jkiss.dbeaver.tools.transfer.IDataTransferConsumer
;
import
org.jkiss.dbeaver.ui.UIUtils
;
...
...
@@ -66,6 +68,9 @@ public class StreamTransferConsumer implements IDataTransferConsumer<StreamConsu
private
static
final
String
LOB_DIRECTORY_NAME
=
"files"
;
//$NON-NLS-1$
public
static
final
String
VARIABLE_DATASOURCE
=
"datasource"
;
public
static
final
String
VARIABLE_CATALOG
=
"catalog"
;
public
static
final
String
VARIABLE_SCHEMA
=
"schema"
;
public
static
final
String
VARIABLE_TABLE
=
"table"
;
public
static
final
String
VARIABLE_TIMESTAMP
=
"timestamp"
;
public
static
final
String
VARIABLE_DATE
=
"date"
;
...
...
@@ -350,8 +355,6 @@ public class StreamTransferConsumer implements IDataTransferConsumer<StreamConsu
private
void
executeFinishCommand
()
{
String
commandLine
=
translatePattern
(
settings
.
getFinishProcessCommand
(),
DBUtils
.
getObjectOwnerProject
(
sourceObject
),
stripObjectName
(
sourceObject
.
getName
()),
outputFile
);
DBRShellCommand
command
=
new
DBRShellCommand
(
commandLine
);
DBRProcessDescriptor
processDescriptor
=
new
DBRProcessDescriptor
(
command
);
...
...
@@ -373,8 +376,6 @@ public class StreamTransferConsumer implements IDataTransferConsumer<StreamConsu
Object
extension
=
processorProperties
.
get
(
StreamConsumerSettings
.
PROP_FILE_EXTENSION
);
String
fileName
=
translatePattern
(
settings
.
getOutputFilePattern
(),
DBUtils
.
getObjectOwnerProject
(
sourceObject
),
stripObjectName
(
sourceObject
.
getName
()),
null
);
if
(
extension
!=
null
)
{
return
fileName
+
"."
+
extension
;
...
...
@@ -396,27 +397,36 @@ public class StreamTransferConsumer implements IDataTransferConsumer<StreamConsu
return
new
File
(
dir
,
fileName
);
}
private
String
translatePattern
(
String
pattern
,
final
IProject
project
,
final
String
tableName
,
final
File
targetFile
)
private
String
translatePattern
(
String
pattern
,
final
File
targetFile
)
{
pattern
=
GeneralUtils
.
replaceVariables
(
pattern
,
name
->
{
return
GeneralUtils
.
replaceVariables
(
pattern
,
name
->
{
switch
(
name
)
{
case
VARIABLE_DATASOURCE:
{
return
stripObjectName
(
sourceObject
.
getDataSource
().
getContainer
().
getName
());
}
case
VARIABLE_CATALOG:
{
DBSCatalog
catalog
=
DBUtils
.
getParentOfType
(
DBSCatalog
.
class
,
sourceObject
);
return
catalog
==
null
?
""
:
stripObjectName
(
catalog
.
getName
());
}
case
VARIABLE_SCHEMA:
{
DBSSchema
schema
=
DBUtils
.
getParentOfType
(
DBSSchema
.
class
,
sourceObject
);
return
schema
==
null
?
""
:
stripObjectName
(
schema
.
getName
());
}
case
VARIABLE_TABLE:
return
tableName
;
return
stripObjectName
(
sourceObject
.
getName
())
;
case
VARIABLE_TIMESTAMP:
return
RuntimeUtils
.
getCurrentTimeStamp
();
case
VARIABLE_DATE:
return
RuntimeUtils
.
getCurrentDate
();
case
VARIABLE_PROJECT:
case
VARIABLE_PROJECT:
{
IProject
project
=
DBUtils
.
getObjectOwnerProject
(
sourceObject
);
return
project
==
null
?
""
:
project
.
getName
();
}
case
VARIABLE_FILE:
return
targetFile
==
null
?
""
:
targetFile
.
getAbsolutePath
();
}
return
null
;
});
// Replace legacy patterns (without dollar prefix)
return
pattern
.
replace
(
"{table}"
,
tableName
)
.
replace
(
"{timestamp}"
,
RuntimeUtils
.
getCurrentTimeStamp
());
}
private
static
String
stripObjectName
(
String
name
)
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java
浏览文件 @
270da14f
...
...
@@ -460,6 +460,22 @@ public final class DBUtils {
return
adapter
==
object
?
null
:
adapter
;
}
@Nullable
public
static
<
T
>
T
getParentOfType
(
@NotNull
Class
<
T
>
type
,
DBSObject
object
)
{
if
(
object
==
null
)
{
return
null
;
}
for
(
DBSObject
parent
=
object
.
getParentObject
();
parent
!=
null
;
parent
=
parent
.
getParentObject
())
{
if
(
type
.
isInstance
(
parent
))
{
return
type
.
cast
(
parent
);
}
else
if
(
parent
instanceof
DBPDataSource
||
parent
instanceof
DBPDataSourceContainer
)
{
break
;
}
}
return
null
;
}
/**
* Search for virtual entity descriptor
* @param object object
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录