Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dlink
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhaowei
dlink
Commits
fdba1fd3
Commit
fdba1fd3
authored
Jun 13, 2021
by
wenmo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
0.2.2优化
parent
0f859617
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
133 additions
and
210 deletions
+133
-210
README.md
README.md
+3
-3
dependency-reduced-pom.xml
dlink-client/dlink-client-1.12/dependency-reduced-pom.xml
+1
-1
pom.xml
dlink-core/pom.xml
+0
-28
Executor.java
dlink-core/src/main/java/com/dlink/executor/Executor.java
+45
-13
LocalStreamExecutor.java
...src/main/java/com/dlink/executor/LocalStreamExecutor.java
+0
-78
RemoteStreamExecutor.java
...rc/main/java/com/dlink/executor/RemoteStreamExecutor.java
+0
-78
FlinkInterceptor.java
...src/main/java/com/dlink/interceptor/FlinkInterceptor.java
+19
-0
SelectBuilder.java
dlink-core/src/main/java/com/dlink/result/SelectBuilder.java
+6
-3
CreateOperation.java
...k-core/src/main/java/com/dlink/trans/CreateOperation.java
+12
-0
Operation.java
dlink-core/src/main/java/com/dlink/trans/Operation.java
+16
-0
Operations.java
dlink-core/src/main/java/com/dlink/trans/Operations.java
+1
-6
CreateAggTableOperation.java
...ain/java/com/dlink/trans/ddl/CreateAggTableOperation.java
+30
-0
No files found.
README.md
View file @
fdba1fd3
...
@@ -205,14 +205,14 @@ ${sf} ${tb}
...
@@ -205,14 +205,14 @@ ${sf} ${tb}
select
*
from
student
select
*
from
student
```
```
5.
MaxRowNum 为预览的最大集合长度,默认100,最大9999
,当前版本防止您作死
。
5.
MaxRowNum 为预览的最大集合长度,默认100,最大9999。
6.
SavePointPath 当前版本暂不可用。
6.
SavePointPath 当前版本
属于非Jar提交,
暂不可用。
7.
Flink集群与共享会话构成了唯一的 Catalogue ,即您可以通过自定义一个会话 key,然后将当前会话 key 告诉您的战友,那他可以用该 key 访问您在集群上的 Catalogue信息与缓存。当然会话数量有限制,最大256
*
0.75,未来版本会开放设置。
7.
Flink集群与共享会话构成了唯一的 Catalogue ,即您可以通过自定义一个会话 key,然后将当前会话 key 告诉您的战友,那他可以用该 key 访问您在集群上的 Catalogue信息与缓存。当然会话数量有限制,最大256
*
0.75,未来版本会开放设置。
8.
连接器为 Catalogue 里的表信息,清除会销毁当前会话。
8.
连接器为 Catalogue 里的表信息,清除会销毁当前会话。
9.
Local 模式请使用少量测试数据,真实数据请使用远程集群。
9.
Local 模式请使用少量测试数据,真实数据请使用远程集群。
10.
执行 SQL 时,如果您选中了部分SQL,则会执行选中的内容,否则执行全部内容。
10.
执行 SQL 时,如果您选中了部分SQL,则会执行选中的内容,否则执行全部内容。
11.
小火箭的提交功能是异步提交当前任务保存的FlinkSQL及配置到集群。无法提交草稿。
11.
小火箭的提交功能是异步提交当前任务保存的FlinkSQL及配置到集群。无法提交草稿。
12.
执行信息或者历史中那个很长很长的就是集群上的 JobId。
12.
执行信息或者历史中那个很长很长的就是集群上的 JobId
,只有同步执行才会记录执行信息和历史
。
13.
草稿是无法被异步远程提交的,只能同步执行。
13.
草稿是无法被异步远程提交的,只能同步执行。
14.
灰色按钮代表近期将实现。
14.
灰色按钮代表近期将实现。
...
...
dlink-client/dlink-client-1.12/dependency-reduced-pom.xml
View file @
fdba1fd3
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
<parent>
<parent>
<artifactId>
dlink-client
</artifactId>
<artifactId>
dlink-client
</artifactId>
<groupId>
com.dlink
</groupId>
<groupId>
com.dlink
</groupId>
<version>
0.
2.1
</version>
<version>
0.
3.0-SANPSHOT
</version>
</parent>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
dlink-client-1.12
</artifactId>
<artifactId>
dlink-client-1.12
</artifactId>
...
...
dlink-core/pom.xml
View file @
fdba1fd3
...
@@ -13,8 +13,6 @@
...
@@ -13,8 +13,6 @@
<properties>
<properties>
<java.version>
1.8
</java.version>
<java.version>
1.8
</java.version>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<flink.version>
1.12.4
</flink.version>
<scala.binary.version>
2.11
</scala.binary.version>
<maven.compiler.source>
1.8
</maven.compiler.source>
<maven.compiler.source>
1.8
</maven.compiler.source>
<maven.compiler.target>
1.8
</maven.compiler.target>
<maven.compiler.target>
1.8
</maven.compiler.target>
<junit.version>
4.12
</junit.version>
<junit.version>
4.12
</junit.version>
...
@@ -24,32 +22,6 @@
...
@@ -24,32 +22,6 @@
<groupId>
cn.hutool
</groupId>
<groupId>
cn.hutool
</groupId>
<artifactId>
hutool-all
</artifactId>
<artifactId>
hutool-all
</artifactId>
</dependency>
</dependency>
<!--<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-planner-blink_${scala.binary.version}</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
<version>${flink.version}</version>
</dependency>-->
<!--<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
</dependency>-->
<!--<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>force-shading</artifactId>
<version>${flink.version}</version>
</dependency>-->
<!--<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-connector-jdbc_2.11</artifactId>
<version>${flink.version}</version>
</dependency>-->
<dependency>
<dependency>
<groupId>
junit
</groupId>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
<artifactId>
junit
</artifactId>
...
...
dlink-core/src/main/java/com/dlink/executor/Executor.java
View file @
fdba1fd3
...
@@ -21,6 +21,12 @@ public abstract class Executor {
...
@@ -21,6 +21,12 @@ public abstract class Executor {
public
static
final
String
LOCAL
=
"LOCAL"
;
public
static
final
String
LOCAL
=
"LOCAL"
;
public
static
final
String
REMOTE
=
"REMOTE"
;
public
static
final
String
REMOTE
=
"REMOTE"
;
protected
StreamExecutionEnvironment
environment
;
protected
CustomTableEnvironmentImpl
stEnvironment
;
protected
EnvironmentSetting
environmentSetting
;
protected
ExecutorSetting
executorSetting
;
public
static
Executor
build
(){
public
static
Executor
build
(){
return
new
LocalStreamExecutor
(
new
ExecutorSetting
(
LOCAL
));
return
new
LocalStreamExecutor
(
new
ExecutorSetting
(
LOCAL
));
}
}
...
@@ -35,29 +41,55 @@ public abstract class Executor {
...
@@ -35,29 +41,55 @@ public abstract class Executor {
}
}
}
}
public
abstract
StreamExecutionEnvironment
getEnvironment
();
public
StreamExecutionEnvironment
getEnvironment
(){
return
environment
;
}
public
abstract
CustomTableEnvironmentImpl
getCustomTableEnvironmentImpl
();
public
CustomTableEnvironmentImpl
getCustomTableEnvironmentImpl
(){
return
stEnvironment
;
}
public
abstract
ExecutorSetting
getExecutorSetting
();
public
ExecutorSetting
getExecutorSetting
(){
return
executorSetting
;
}
public
abstract
EnvironmentSetting
getEnvironmentSetting
();
public
EnvironmentSetting
getEnvironmentSetting
(){
return
environmentSetting
;
}
public
abstract
JobExecutionResult
execute
(
String
statement
)
throws
Exception
;
public
JobExecutionResult
execute
(
String
statement
)
throws
Exception
{
return
stEnvironment
.
execute
(
statement
);
}
public
abstract
TableResult
executeSql
(
String
statement
);
public
TableResult
executeSql
(
String
statement
){
return
stEnvironment
.
executeSql
(
statement
);
}
public
abstract
Table
sqlQuery
(
String
statement
);
public
Table
sqlQuery
(
String
statement
){
return
stEnvironment
.
sqlQuery
(
statement
);
}
public
abstract
String
explainSql
(
String
statement
,
ExplainDetail
...
extraDetails
);
public
String
explainSql
(
String
statement
,
ExplainDetail
...
extraDetails
){
return
stEnvironment
.
explainSql
(
statement
,
extraDetails
);
}
public
abstract
SqlExplainResult
explainSqlRecord
(
String
statement
,
ExplainDetail
...
extraDetails
);
public
SqlExplainResult
explainSqlRecord
(
String
statement
,
ExplainDetail
...
extraDetails
){
return
stEnvironment
.
explainSqlRecord
(
statement
,
extraDetails
);
}
public
abstract
String
getStreamGraphString
(
String
statement
);
public
String
getStreamGraphString
(
String
statement
){
return
stEnvironment
.
getStreamGraphString
(
statement
);
}
public
abstract
ObjectNode
getStreamGraph
(
String
statement
);
public
ObjectNode
getStreamGraph
(
String
statement
){
return
stEnvironment
.
getStreamGraph
(
statement
);
}
public
abstract
void
registerFunction
(
String
name
,
ScalarFunction
function
);
public
void
registerFunction
(
String
name
,
ScalarFunction
function
){
stEnvironment
.
registerFunction
(
name
,
function
);
}
public
abstract
void
createTemporarySystemFunction
(
String
name
,
Class
<?
extends
UserDefinedFunction
>
var2
);
public
void
createTemporarySystemFunction
(
String
name
,
Class
<?
extends
UserDefinedFunction
>
var2
){
stEnvironment
.
createTemporarySystemFunction
(
name
,
var2
);
}
}
}
dlink-core/src/main/java/com/dlink/executor/LocalStreamExecutor.java
View file @
fdba1fd3
package
com
.
dlink
.
executor
;
package
com
.
dlink
.
executor
;
import
com.dlink.executor.custom.CustomTableEnvironmentImpl
;
import
com.dlink.executor.custom.CustomTableEnvironmentImpl
;
import
com.dlink.result.SqlExplainResult
;
import
org.apache.flink.api.common.JobExecutionResult
;
import
org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.node.ObjectNode
;
import
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment
;
import
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment
;
import
org.apache.flink.table.api.ExplainDetail
;
import
org.apache.flink.table.api.Table
;
import
org.apache.flink.table.api.TableResult
;
import
org.apache.flink.table.functions.ScalarFunction
;
import
org.apache.flink.table.functions.UserDefinedFunction
;
/**
/**
* LocalStreamExecuter
* LocalStreamExecuter
...
@@ -19,10 +11,6 @@ import org.apache.flink.table.functions.UserDefinedFunction;
...
@@ -19,10 +11,6 @@ import org.apache.flink.table.functions.UserDefinedFunction;
**/
**/
public
class
LocalStreamExecutor
extends
Executor
{
public
class
LocalStreamExecutor
extends
Executor
{
private
StreamExecutionEnvironment
environment
;
private
CustomTableEnvironmentImpl
stEnvironment
;
private
ExecutorSetting
executorSetting
;
public
LocalStreamExecutor
(
ExecutorSetting
executorSetting
)
{
public
LocalStreamExecutor
(
ExecutorSetting
executorSetting
)
{
this
.
executorSetting
=
executorSetting
;
this
.
executorSetting
=
executorSetting
;
this
.
environment
=
StreamExecutionEnvironment
.
createLocalEnvironment
();
this
.
environment
=
StreamExecutionEnvironment
.
createLocalEnvironment
();
...
@@ -42,70 +30,4 @@ public class LocalStreamExecutor extends Executor {
...
@@ -42,70 +30,4 @@ public class LocalStreamExecutor extends Executor {
stEnvironment
.
unUseSqlFragment
();
stEnvironment
.
unUseSqlFragment
();
}
}
}
}
@Override
public
StreamExecutionEnvironment
getEnvironment
()
{
return
this
.
environment
;
}
@Override
public
CustomTableEnvironmentImpl
getCustomTableEnvironmentImpl
()
{
return
this
.
stEnvironment
;
}
@Override
public
ExecutorSetting
getExecutorSetting
()
{
return
this
.
executorSetting
;
}
@Override
public
EnvironmentSetting
getEnvironmentSetting
()
{
return
null
;
}
@Override
public
JobExecutionResult
execute
(
String
statement
)
throws
Exception
{
return
stEnvironment
.
execute
(
statement
);
}
@Override
public
TableResult
executeSql
(
String
statement
)
{
return
stEnvironment
.
executeSql
(
statement
);
}
@Override
public
Table
sqlQuery
(
String
statement
)
{
return
stEnvironment
.
sqlQuery
(
statement
);
}
@Override
public
String
explainSql
(
String
statement
,
ExplainDetail
...
extraDetails
)
{
return
stEnvironment
.
explainSql
(
statement
,
extraDetails
);
}
@Override
public
SqlExplainResult
explainSqlRecord
(
String
statement
,
ExplainDetail
...
extraDetails
)
{
return
stEnvironment
.
explainSqlRecord
(
statement
,
extraDetails
);
}
@Override
public
String
getStreamGraphString
(
String
statement
)
{
return
stEnvironment
.
getStreamGraphString
(
statement
);
}
@Override
public
ObjectNode
getStreamGraph
(
String
statement
)
{
return
stEnvironment
.
getStreamGraph
(
statement
);
}
@Override
public
void
registerFunction
(
String
name
,
ScalarFunction
function
)
{
stEnvironment
.
registerFunction
(
name
,
function
);
}
@Override
public
void
createTemporarySystemFunction
(
String
name
,
Class
<?
extends
UserDefinedFunction
>
var2
)
{
stEnvironment
.
createTemporarySystemFunction
(
name
,
var2
);
}
}
}
dlink-core/src/main/java/com/dlink/executor/RemoteStreamExecutor.java
View file @
fdba1fd3
package
com
.
dlink
.
executor
;
package
com
.
dlink
.
executor
;
import
com.dlink.executor.custom.CustomTableEnvironmentImpl
;
import
com.dlink.executor.custom.CustomTableEnvironmentImpl
;
import
com.dlink.result.SqlExplainResult
;
import
org.apache.flink.api.common.JobExecutionResult
;
import
org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.node.ObjectNode
;
import
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment
;
import
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment
;
import
org.apache.flink.table.api.ExplainDetail
;
import
org.apache.flink.table.api.Table
;
import
org.apache.flink.table.api.TableResult
;
import
org.apache.flink.table.functions.ScalarFunction
;
import
org.apache.flink.table.functions.UserDefinedFunction
;
/**
/**
* RemoteStreamExecutor
* RemoteStreamExecutor
...
@@ -19,12 +11,6 @@ import org.apache.flink.table.functions.UserDefinedFunction;
...
@@ -19,12 +11,6 @@ import org.apache.flink.table.functions.UserDefinedFunction;
**/
**/
public
class
RemoteStreamExecutor
extends
Executor
{
public
class
RemoteStreamExecutor
extends
Executor
{
private
StreamExecutionEnvironment
environment
;
private
CustomTableEnvironmentImpl
stEnvironment
;
private
EnvironmentSetting
environmentSetting
;
private
ExecutorSetting
executorSetting
;
public
RemoteStreamExecutor
(
EnvironmentSetting
environmentSetting
,
ExecutorSetting
executorSetting
)
{
public
RemoteStreamExecutor
(
EnvironmentSetting
environmentSetting
,
ExecutorSetting
executorSetting
)
{
this
.
environmentSetting
=
environmentSetting
;
this
.
environmentSetting
=
environmentSetting
;
this
.
executorSetting
=
executorSetting
;
this
.
executorSetting
=
executorSetting
;
...
@@ -50,68 +36,4 @@ public class RemoteStreamExecutor extends Executor {
...
@@ -50,68 +36,4 @@ public class RemoteStreamExecutor extends Executor {
}
}
}
}
@Override
public
StreamExecutionEnvironment
getEnvironment
()
{
return
this
.
environment
;
}
@Override
public
CustomTableEnvironmentImpl
getCustomTableEnvironmentImpl
()
{
return
this
.
stEnvironment
;
}
@Override
public
ExecutorSetting
getExecutorSetting
()
{
return
this
.
executorSetting
;
}
@Override
public
EnvironmentSetting
getEnvironmentSetting
()
{
return
this
.
environmentSetting
;
}
@Override
public
JobExecutionResult
execute
(
String
statement
)
throws
Exception
{
return
stEnvironment
.
execute
(
statement
);
}
@Override
public
TableResult
executeSql
(
String
statement
){
return
stEnvironment
.
executeSql
(
statement
);
}
@Override
public
Table
sqlQuery
(
String
statement
){
return
stEnvironment
.
sqlQuery
(
statement
);
}
@Override
public
String
explainSql
(
String
statement
,
ExplainDetail
...
extraDetails
)
{
return
stEnvironment
.
explainSql
(
statement
,
extraDetails
);
}
@Override
public
SqlExplainResult
explainSqlRecord
(
String
statement
,
ExplainDetail
...
extraDetails
)
{
return
stEnvironment
.
explainSqlRecord
(
statement
,
extraDetails
);
}
@Override
public
String
getStreamGraphString
(
String
statement
)
{
return
stEnvironment
.
getStreamGraphString
(
statement
);
}
@Override
public
ObjectNode
getStreamGraph
(
String
statement
)
{
return
stEnvironment
.
getStreamGraph
(
statement
);
}
@Override
public
void
registerFunction
(
String
name
,
ScalarFunction
function
)
{
stEnvironment
.
registerFunction
(
name
,
function
);
}
@Override
public
void
createTemporarySystemFunction
(
String
name
,
Class
<?
extends
UserDefinedFunction
>
var2
)
{
stEnvironment
.
createTemporarySystemFunction
(
name
,
var2
);
}
}
}
dlink-core/src/main/java/com/dlink/interceptor/FlinkInterceptor.java
0 → 100644
View file @
fdba1fd3
package
com
.
dlink
.
interceptor
;
import
com.dlink.executor.custom.CustomTableEnvironmentImpl
;
import
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment
;
/**
* TODO
*
* @author wenmo
* @since 2021/6/11 22:17
*/
public
class
FlinkInterceptor
{
public
static
void
build
(
CustomTableEnvironmentImpl
stEnvironment
){
}
}
dlink-core/src/main/java/com/dlink/result/SelectBuilder.java
View file @
fdba1fd3
...
@@ -38,10 +38,11 @@ public class SelectBuilder extends AbstractBuilder implements ResultBuilder {
...
@@ -38,10 +38,11 @@ public class SelectBuilder extends AbstractBuilder implements ResultBuilder {
return
new
String
[
x
$
0
];
return
new
String
[
x
$
0
];
});
});
}
}
long
numRows
;
long
numRows
=
0L
;
List
<
Map
<
String
,
Object
>>
rows
=
new
ArrayList
<>();
List
<
Map
<
String
,
Object
>>
rows
=
new
ArrayList
<>();
Iterator
<
Row
>
it
=
tableResult
.
collect
();
Iterator
<
Row
>
it
=
tableResult
.
collect
();
for
(
numRows
=
0L
;
it
.
hasNext
()
;
++
numRows
)
{
while
(
it
.
hasNext
()){
// for (numRows = 0L; it.hasNext() ; ++numRows) {
if
(
numRows
<
maxRowNum
)
{
if
(
numRows
<
maxRowNum
)
{
String
[]
cols
=
rowToString
((
Row
)
it
.
next
());
String
[]
cols
=
rowToString
((
Row
)
it
.
next
());
Map
<
String
,
Object
>
row
=
new
HashMap
<>();
Map
<
String
,
Object
>
row
=
new
HashMap
<>();
...
@@ -56,8 +57,10 @@ public class SelectBuilder extends AbstractBuilder implements ResultBuilder {
...
@@ -56,8 +57,10 @@ public class SelectBuilder extends AbstractBuilder implements ResultBuilder {
}
}
rows
.
add
(
row
);
rows
.
add
(
row
);
}
else
{
}
else
{
it
.
next
();
break
;
// it.next();
}
}
numRows
++;
totalCount
++;
totalCount
++;
}
}
return
new
SelectResult
(
rows
,
totalCount
,
rows
.
size
(),
column
);
return
new
SelectResult
(
rows
,
totalCount
,
rows
.
size
(),
column
);
...
...
dlink-core/src/main/java/com/dlink/trans/CreateOperation.java
0 → 100644
View file @
fdba1fd3
package
com
.
dlink
.
trans
;
/**
* TODO
*
* @author wenmo
* @since 2021/6/13 19:34
*/
public
interface
CreateOperation
extends
Operation
{
void
create
();
}
dlink-core/src/main/java/com/dlink/trans/Operation.java
0 → 100644
View file @
fdba1fd3
package
com
.
dlink
.
trans
;
/**
* Operation
*
* @author wenmo
* @since 2021/6/13 19:24
*/
public
interface
Operation
{
String
getHandle
();
boolean
canHandle
(
String
key
);
void
build
();
}
dlink-core/src/main/java/com/dlink/trans/Operations.java
View file @
fdba1fd3
...
@@ -9,12 +9,7 @@ import com.dlink.constant.FlinkSQLConstant;
...
@@ -9,12 +9,7 @@ import com.dlink.constant.FlinkSQLConstant;
* @since 2021/5/25 15:50
* @since 2021/5/25 15:50
**/
**/
public
class
Operations
{
public
class
Operations
{
/**
* 获取操作类型
*
* @param sql
* @return
*/
public
static
String
getOperationType
(
String
sql
)
{
public
static
String
getOperationType
(
String
sql
)
{
String
sqlTrim
=
sql
.
replaceAll
(
"[\\s\\t\\n\\r]"
,
""
).
toUpperCase
();
String
sqlTrim
=
sql
.
replaceAll
(
"[\\s\\t\\n\\r]"
,
""
).
toUpperCase
();
if
(
sqlTrim
.
startsWith
(
FlinkSQLConstant
.
CREATE
))
{
if
(
sqlTrim
.
startsWith
(
FlinkSQLConstant
.
CREATE
))
{
...
...
dlink-core/src/main/java/com/dlink/trans/ddl/CreateAggTableOperation.java
0 → 100644
View file @
fdba1fd3
package
com
.
dlink
.
trans
.
ddl
;
import
com.dlink.trans.Operation
;
/**
* TODO
*
* @author wenmo
* @since 2021/6/13 19:24
*/
public
class
CreateAggTableOperation
implements
Operation
{
private
String
KEY_WORD
=
"CREATE AGGTABLE"
;
@Override
public
String
getHandle
()
{
return
KEY_WORD
;
}
@Override
public
boolean
canHandle
(
String
key
)
{
if
(
KEY_WORD
.
equalsIgnoreCase
(
key
)){
return
true
;
}
else
{
return
false
;
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment