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-1121 Commit: 34cd6ec1abe4bb3097d15396b082bd4a043f6613 Parents: ce7ab19 Author: AKuznetsov <akuznet...@gridgain.com> Authored: Tue Jul 28 13:30:52 2015 +0700 Committer: AKuznetsov <akuznet...@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>'); }