From abf3276c0416cfbca3ed2eb5d03b78c3537bb3f0 Mon Sep 17 00:00:00 2001 From: "qianhao.zhou" Date: Fri, 5 Dec 2014 17:38:39 +0800 Subject: [PATCH 1/2] add datamodels for project --- .../test_case_data/localmeta/project/default.json | 22 ++++++++++++++++++++++ .../localmeta/project/onlyinner.json | 12 ++++++++++++ .../test_case_data/localmeta/project/onlyleft.json | 12 ++++++++++++ 3 files changed, 46 insertions(+) diff --git a/examples/test_case_data/localmeta/project/default.json b/examples/test_case_data/localmeta/project/default.json index 653fcad..0a878d8 100644 --- a/examples/test_case_data/localmeta/project/default.json +++ b/examples/test_case_data/localmeta/project/default.json @@ -1,6 +1,28 @@ { "uuid" : "1eaca32a-a33e-4b69-83dd-0bb8b1f8c91b", "name": "default", + "datamodels": [ + { + "name": "test_kylin_with_slr_model_desc", + "type": "cube", + "realization": "test_kylin_cube_with_slr_empty" + }, + { + "name": "test_kylin_without_slr_model_desc", + "type": "cube", + "realization": "test_kylin_cube_without_slr_empty" + }, + { + "name": "test_kylin_with_slr_left_join_model_desc", + "type": "cube", + "realization": "test_kylin_cube_with_slr_left_join_empty" + }, + { + "name": "test_kylin_without_slr_left_join_model_desc", + "type": "cube", + "realization": "test_kylin_cube_without_slr_left_join_empty" + } + ], "cubes": [ "test_kylin_cube_with_slr_empty", "test_kylin_cube_without_slr_empty", diff --git a/examples/test_case_data/localmeta/project/onlyinner.json b/examples/test_case_data/localmeta/project/onlyinner.json index 9544895..1037b9e 100644 --- a/examples/test_case_data/localmeta/project/onlyinner.json +++ b/examples/test_case_data/localmeta/project/onlyinner.json @@ -1,6 +1,18 @@ { "uuid" : "1eaca32a-a33e-4b69-83dd-0bb8b1f8c92b", "name": "onlyinner", + "datamodels": [ + { + "name": "test_kylin_with_slr_model_desc", + "type": "cube", + "realization": "test_kylin_cube_with_slr_empty" + }, + { + "name": "test_kylin_without_slr_model_desc", + "type": "cube", + "realization": "test_kylin_cube_without_slr_empty" + } + ], "cubes": [ "test_kylin_cube_with_slr_empty", "test_kylin_cube_without_slr_empty" diff --git a/examples/test_case_data/localmeta/project/onlyleft.json b/examples/test_case_data/localmeta/project/onlyleft.json index 13e57ed..bb3ef50 100644 --- a/examples/test_case_data/localmeta/project/onlyleft.json +++ b/examples/test_case_data/localmeta/project/onlyleft.json @@ -1,6 +1,18 @@ { "uuid" : "1eaca32a-a33e-4b69-83dd-0bb8b1f8c93b", "name": "onlyleft", + "datamodels": [ + { + "name": "test_kylin_with_slr_left_join_model_desc", + "type": "cube", + "realization": "test_kylin_cube_with_slr_left_join_empty" + }, + { + "name": "test_kylin_without_slr_left_join_model_desc", + "type": "cube", + "realization": "test_kylin_cube_without_slr_left_join_empty" + } + ], "cubes": [ "test_kylin_cube_with_slr_left_join_empty", "test_kylin_cube_without_slr_left_join_empty" From 1be405627ae84b200925de3de0c048e25056b647 Mon Sep 17 00:00:00 2001 From: "qianhao.zhou" Date: Fri, 5 Dec 2014 17:53:05 +0800 Subject: [PATCH 2/2] add datamodels field for ProjectInstance --- .../kylinolap/cube/project/ProjectInstance.java | 13 ++++++- .../metadata/project/ProjectDataModel.java | 44 ++++++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 metadata/src/main/java/com/kylinolap/metadata/project/ProjectDataModel.java diff --git a/cube/src/main/java/com/kylinolap/cube/project/ProjectInstance.java b/cube/src/main/java/com/kylinolap/cube/project/ProjectInstance.java index 26d4c90..7f9003d 100644 --- a/cube/src/main/java/com/kylinolap/cube/project/ProjectInstance.java +++ b/cube/src/main/java/com/kylinolap/cube/project/ProjectInstance.java @@ -25,6 +25,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.kylinolap.common.persistence.ResourceStore; import com.kylinolap.common.persistence.RootPersistentEntity; +import com.kylinolap.metadata.project.ProjectDataModel; /** * Project is a concept in Kylin similar to schema in DBMS @@ -59,6 +60,9 @@ @JsonProperty("description") private String description; + @JsonProperty("datamodels") + private List dataModels; + public String getResourcePath() { return concatResourcePath(name); } @@ -211,7 +215,14 @@ public void setLastUpdateTime(String lastUpdateTime) { public void recordUpdateTime(long timeMillis) { this.lastUpdateTime = formatTime(timeMillis); } - + + public List getDataModels() { + return dataModels; + } + + public void setDataModels(List dataModels) { + this.dataModels = dataModels; + } public void init() { if (name == null) diff --git a/metadata/src/main/java/com/kylinolap/metadata/project/ProjectDataModel.java b/metadata/src/main/java/com/kylinolap/metadata/project/ProjectDataModel.java new file mode 100644 index 0000000..e0fd40f --- /dev/null +++ b/metadata/src/main/java/com/kylinolap/metadata/project/ProjectDataModel.java @@ -0,0 +1,44 @@ +package com.kylinolap.metadata.project; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Created by qianzhou on 12/5/14. + */ +@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE) +public class ProjectDataModel { + + @JsonProperty("name") + private String name; + + @JsonProperty("type") + private String type; + + @JsonProperty("realization") + private String realization; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getRealization() { + return realization; + } + + public void setRealization(String realization) { + this.realization = realization; + } +}