You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by an...@apache.org on 2015/07/30 11:36:47 UTC

[03/28] incubator-ignite git commit: IGNITE-843: WIP Generate cache type metadata groups.

IGNITE-843: WIP Generate cache type metadata groups.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/34cd6ec1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/34cd6ec1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/34cd6ec1

Branch: refs/heads/ignite-1155_1
Commit: 34cd6ec1abe4bb3097d15396b082bd4a043f6613
Parents: ce7ab19
Author: AKuznetsov <ak...@gridgain.com>
Authored: Tue Jul 28 13:30:52 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Tue Jul 28 13:30:52 2015 +0700

----------------------------------------------------------------------
 .../src/main/js/routes/generator/xml.js         | 54 +++++++++++++++++---
 1 file changed, 47 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/34cd6ec1/modules/web-control-center/src/main/js/routes/generator/xml.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/src/main/js/routes/generator/xml.js b/modules/web-control-center/src/main/js/routes/generator/xml.js
index 8009698..c266722 100644
--- a/modules/web-control-center/src/main/js/routes/generator/xml.js
+++ b/modules/web-control-center/src/main/js/routes/generator/xml.js
@@ -360,6 +360,7 @@ function addFields(res, meta, fieldsProperty) {
         });
 
         res.endBlock('</list>');
+        res.endBlock('</property>');
     }
 }
 
@@ -390,6 +391,39 @@ function addQueryFields(res, meta, fieldsProperty) {
     }
 }
 
+function addCacheTypeMetadataGroups(res, meta) {
+    var groups = meta.groups;
+
+    if (groups && groups.length > 0) {
+        res.startBlock('<property name="groups">');
+        res.startBlock('<map>');
+
+        _.forEach(groups, function (group) {
+            var fields = group.fields;
+
+            if (fields && fields.length > 0) {
+                res.startBlock('<entry key="' + group.name + '">');
+                res.startBlock('<map>');
+
+                _.forEach(fields, function (field) {
+                    res.startBlock('<entry key="' + field.name + '">');
+                    res.startBlock('<bean class="org.apache.ignite.lang.IgniteBiTuple">');
+                    res.line('<constructor-arg value="java.lang.String"/>');
+                    res.line('<constructor-arg value="false"/>');
+                    res.endBlock('</bean>');
+                    res.endBlock('</entry>');
+                });
+
+                res.endBlock('</map>');
+                res.endBlock('</entry>');
+            }
+        });
+
+        res.endBlock('</map>');
+        res.endBlock('</property>');
+    }
+}
+
 function generateCacheTypeMetadataConfiguration(metaCfg, res) {
     if (!res)
         res = generatorUtils.builder();
@@ -411,6 +445,8 @@ function generateCacheTypeMetadataConfiguration(metaCfg, res) {
 
     addListProperty(res, metaCfg, 'textFields');
 
+    addCacheTypeMetadataGroups(res, metaCfg);
+
     res.endBlock('</bean>');
 
     return res;
@@ -552,24 +588,28 @@ function generateCacheConfiguration(cacheCfg, res) {
         res.startBlock('<property name="typeMetadata">');
         res.startBlock('<list>');
 
-        var metas = [];
+        var metaNames = [];
 
         if (cacheCfg.queryMetadata && cacheCfg.queryMetadata.length > 0) {
             _.forEach(cacheCfg.queryMetadata, function (meta) {
-                metas.push(meta);
+                if (!_.contains(metaNames, meta.name)) {
+                    metaNames.push(meta.name);
+
+                    generateCacheTypeMetadataConfiguration(meta, res);
+                }
             });
         }
 
         if (cacheCfg.storeMetadata && cacheCfg.storeMetadata.length > 0) {
             _.forEach(cacheCfg.storeMetadata, function (meta) {
-                metas.push(meta);
+                if (!_.contains(metaNames, meta.name)) {
+                    metaNames.push(meta.name);
+
+                    generateCacheTypeMetadataConfiguration(meta, res);
+                }
             });
         }
 
-        _.forEach(metas, function (meta) {
-            generateCacheTypeMetadataConfiguration(meta, res);
-        });
-
         res.endBlock('</list>');
         res.endBlock('</property>');
     }