Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
bdb4a49f
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,发现更多精彩内容 >>
提交
bdb4a49f
编写于
8月 16, 2017
作者:
K
Karl Grießer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Enable/Disable Constraint on create
Former-commit-id:
4a4b400e
上级
8156ba4d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
126 addition
and
103 deletion
+126
-103
plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/edit/OracleConstraintManager.java
...kiss/dbeaver/ext/oracle/edit/OracleConstraintManager.java
+126
-103
未找到文件。
plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/edit/OracleConstraintManager.java
浏览文件 @
bdb4a49f
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org)
* Copyright (C) 2011-2012 Eugene Fradkin (eugene.fradkin@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.jkiss.dbeaver.ext.oracle.edit
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.ext.oracle.OracleMessages
;
import
org.jkiss.dbeaver.ext.oracle.model.*
;
import
org.jkiss.dbeaver.model.edit.DBECommandContext
;
import
org.jkiss.dbeaver.model.impl.DBSObjectCache
;
import
org.jkiss.dbeaver.model.impl.sql.edit.struct.SQLConstraintManager
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.struct.DBSEntityAttribute
;
import
org.jkiss.dbeaver.model.struct.DBSEntityConstraintType
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.ui.UITask
;
import
org.jkiss.dbeaver.ui.editors.object.struct.EditConstraintPage
;
/**
* Oracle constraint manager
*/
public
class
OracleConstraintManager
extends
SQLConstraintManager
<
OracleTableConstraint
,
OracleTableBase
>
{
@Nullable
@Override
public
DBSObjectCache
<?
extends
DBSObject
,
OracleTableConstraint
>
getObjectsCache
(
OracleTableConstraint
object
)
{
return
object
.
getParentObject
().
getSchema
().
constraintCache
;
}
@Override
protected
OracleTableConstraint
createDatabaseObject
(
DBRProgressMonitor
monitor
,
DBECommandContext
context
,
final
OracleTableBase
parent
,
Object
from
)
{
return
new
UITask
<
OracleTableConstraint
>()
{
@Override
protected
OracleTableConstraint
runTask
()
{
EditConstraintPage
editPage
=
new
EditConstraintPage
(
OracleMessages
.
edit_oracle_constraint_manager_dialog_title
,
parent
,
new
DBSEntityConstraintType
[]
{
DBSEntityConstraintType
.
PRIMARY_KEY
,
DBSEntityConstraintType
.
UNIQUE_KEY
});
if
(!
editPage
.
edit
())
{
return
null
;
}
final
OracleTableConstraint
constraint
=
new
OracleTableConstraint
(
parent
,
editPage
.
getConstraintName
(),
editPage
.
getConstraintType
(),
null
,
OracleObjectStatus
.
ENABLED
);
int
colIndex
=
1
;
for
(
DBSEntityAttribute
tableColumn
:
editPage
.
getSelectedAttributes
())
{
constraint
.
addColumn
(
new
OracleTableConstraintColumn
(
constraint
,
(
OracleTableColumn
)
tableColumn
,
colIndex
++));
}
return
constraint
;
}
}.
execute
();
}
@Override
protected
String
getDropConstraintPattern
(
OracleTableConstraint
constraint
)
{
String
clause
;
if
(
constraint
.
getConstraintType
()
==
DBSEntityConstraintType
.
PRIMARY_KEY
)
{
clause
=
"PRIMARY KEY"
;
//$NON-NLS-1$
}
else
{
clause
=
"CONSTRAINT"
;
//$NON-NLS-1$
}
return
"ALTER TABLE "
+
PATTERN_ITEM_TABLE
+
" DROP "
+
clause
+
" "
+
PATTERN_ITEM_CONSTRAINT
;
//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
@NotNull
protected
String
getAddConstraintTypeClause
(
OracleTableConstraint
constraint
)
{
if
(
constraint
.
getConstraintType
()
==
DBSEntityConstraintType
.
UNIQUE_KEY
)
{
return
"UNIQUE"
;
//$NON-NLS-1$
}
return
super
.
getAddConstraintTypeClause
(
constraint
);
}
}
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org)
* Copyright (C) 2011-2012 Eugene Fradkin (eugene.fradkin@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.jkiss.dbeaver.ext.oracle.edit
;
import
java.util.List
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.ext.oracle.OracleMessages
;
import
org.jkiss.dbeaver.ext.oracle.model.*
;
import
org.jkiss.dbeaver.model.DBPEvaluationContext
;
import
org.jkiss.dbeaver.model.edit.DBECommandContext
;
import
org.jkiss.dbeaver.model.edit.DBEPersistAction
;
import
org.jkiss.dbeaver.model.impl.DBSObjectCache
;
import
org.jkiss.dbeaver.model.impl.edit.SQLDatabasePersistAction
;
import
org.jkiss.dbeaver.model.impl.sql.edit.SQLObjectEditor
;
import
org.jkiss.dbeaver.model.impl.sql.edit.struct.SQLConstraintManager
;
import
org.jkiss.dbeaver.model.messages.ModelMessages
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.struct.DBSEntityAttribute
;
import
org.jkiss.dbeaver.model.struct.DBSEntityConstraintType
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.ui.UITask
;
import
org.jkiss.dbeaver.ui.editors.object.struct.EditConstraintPage
;
/**
* Oracle constraint manager
*/
public
class
OracleConstraintManager
extends
SQLConstraintManager
<
OracleTableConstraint
,
OracleTableBase
>
{
@Nullable
@Override
public
DBSObjectCache
<?
extends
DBSObject
,
OracleTableConstraint
>
getObjectsCache
(
OracleTableConstraint
object
)
{
return
object
.
getParentObject
().
getSchema
().
constraintCache
;
}
@Override
protected
OracleTableConstraint
createDatabaseObject
(
DBRProgressMonitor
monitor
,
DBECommandContext
context
,
final
OracleTableBase
parent
,
Object
from
)
{
return
new
UITask
<
OracleTableConstraint
>()
{
@Override
protected
OracleTableConstraint
runTask
()
{
EditConstraintPage
editPage
=
new
EditConstraintPage
(
OracleMessages
.
edit_oracle_constraint_manager_dialog_title
,
parent
,
new
DBSEntityConstraintType
[]
{
DBSEntityConstraintType
.
PRIMARY_KEY
,
DBSEntityConstraintType
.
UNIQUE_KEY
},
true
);
if
(!
editPage
.
edit
())
{
return
null
;
}
final
OracleTableConstraint
constraint
=
new
OracleTableConstraint
(
parent
,
editPage
.
getConstraintName
(),
editPage
.
getConstraintType
(),
null
,
editPage
.
isEnableConstraint
()
?
OracleObjectStatus
.
ENABLED
:
OracleObjectStatus
.
DISABLED
);
int
colIndex
=
1
;
for
(
DBSEntityAttribute
tableColumn
:
editPage
.
getSelectedAttributes
())
{
constraint
.
addColumn
(
new
OracleTableConstraintColumn
(
constraint
,
(
OracleTableColumn
)
tableColumn
,
colIndex
++));
}
return
constraint
;
}
}.
execute
();
}
@Override
protected
String
getDropConstraintPattern
(
OracleTableConstraint
constraint
)
{
String
clause
;
if
(
constraint
.
getConstraintType
()
==
DBSEntityConstraintType
.
PRIMARY_KEY
)
{
clause
=
"PRIMARY KEY"
;
//$NON-NLS-1$
}
else
{
clause
=
"CONSTRAINT"
;
//$NON-NLS-1$
}
return
"ALTER TABLE "
+
PATTERN_ITEM_TABLE
+
" DROP "
+
clause
+
" "
+
PATTERN_ITEM_CONSTRAINT
;
//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
@NotNull
protected
String
getAddConstraintTypeClause
(
OracleTableConstraint
constraint
)
{
if
(
constraint
.
getConstraintType
()
==
DBSEntityConstraintType
.
UNIQUE_KEY
)
{
return
"UNIQUE"
;
//$NON-NLS-1$
}
return
super
.
getAddConstraintTypeClause
(
constraint
);
}
@Override
protected
void
addObjectCreateActions
(
List
<
DBEPersistAction
>
actions
,
SQLObjectEditor
<
OracleTableConstraint
,
OracleTableBase
>.
ObjectCreateCommand
command
)
{
OracleTableConstraint
constraint
=
(
OracleTableConstraint
)
command
.
getObject
();
OracleTableBase
table
=
constraint
.
getTable
();
actions
.
add
(
new
SQLDatabasePersistAction
(
ModelMessages
.
model_jdbc_create_new_constraint
,
"ALTER TABLE "
+
table
.
getFullyQualifiedName
(
DBPEvaluationContext
.
DDL
)
+
" ADD "
+
getNestedDeclaration
(
table
,
command
)
+
" "
+
(
constraint
.
getStatus
()
==
OracleObjectStatus
.
ENABLED
?
"ENABLE"
:
"DISABLE"
)
));
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录