{ <% boolean isFirst = true; %>\ "root":{ "model":<%if(util.project != null){%><%=util.project.version%><%}else{%>""<%}%>, "template":"02.00.00", <% if(util.areas.size) { %>\ "areas":[ <% area_last = util.areas.get(util.areas.size - 1); util.areas.each {%>\ { "name":"<%=it.name%>", "visibility":<%=util.getVisibility(it.name)%>, "arbitrationPolicy":"<%=it.getArbitrationPolicy().name%>", "zorder":<%=util.getZorder(it.name)%>, "size":[ <% size_last = it.size.get(it.size.size - 1); it.size.each { %>\ { <% if(it.getClass().getName().toString() == "rba.view.impl.SizeReferenceImpl"){ %>\ "name":"<%=it.getSize().name%>", "width":<%=it.getSize().getWidth()%>, "height":<%=it.getSize().getHeight()%> <% }else if(it.getClass().getName().toString() == "rba.view.impl.SizeImpl"){ %>\ "name":"<%=it.name%>", "width":<%=it.getWidth()%>, "height":<%=it.getHeight()%> <% } %>\ }<%if (it != size_last) {%>,<%}%> <% } %>\ ] <% s = util2.jsonConstractorOtherThan(it, 3, Arrays.asList("class", "name", "arbitrationPolicy", "zorder", "contents", "allocatableGroup", "visibility", "size")); if (s.size() > 1) {%><%=s%><%}%>\ }<%if (it != area_last) {%>,<%}%> <% } isFirst = false; } %>\ <% if(util.getZones().size) { %>\ <% if(!isFirst){ %>\ ], <% } %>\ "zones":[ <% util.getZones().each { zone_last = util.getZones().get(util.getZones().size - 1); %>\ { "name":"<%=it.name%>", "arbitrationPolicy":"<%=it.getArbitrationPolicy().name%>", "priority":<%=util.getVisibility(it.name)%><% if(it.getAttenuate() != null){%>, "attenuateValue":<%=it.getAttenuate().value%>\ <% } s = util2.jsonConstractorOtherThan(it, 3, Arrays.asList("class", "name", "size", "arbitrationPolicy", "contents", "allocatableGroup", "visibility", "attenuate")); if (s.size() > 1) {%><%=s%><%}%> }<%if (it != zone_last) {%>,<%}%> <% } } %>\ <% if(util.getViewContents().size) { %>\ ], "viewcontents":[ <% cont_last = util.getViewContents().get(util.getViewContents().size - 1); util.getViewContents().each { %>\ { "name":"<%=it.name%>",<%cont_name=it.name%> "loserType":"<%=it.getLoserType()%>", "size":[ <% size_last = it.size.get(it.size.size - 1); it.size.each { if(it.getClass().getName().toString() == "rba.view.impl.SizeReferenceImpl"){ %>\ { "name":"<%=it.getSize().name%>", "width":<%=it.getSize().getWidth()%>, "height":<%=it.getSize().getHeight()%> }<% if (it != size_last) {%>,<%}%> <% }else if(it.getClass().getName().toString() == "rba.view.impl.SizeImpl"){ %>\ { "name":"<%=it.name%>", "width":<%=it.getWidth()%>, "height":<%=it.getHeight()%> }<%if (it != size_last) {%>,<%}%> <% } } %>\ ], "states":[ <% state_last = it.getStates().get(it.getStates().size - 1); it.getStates().each { %>\ { "name":"<%=it.name%>", "priority":<%=util.getPriority(cont_name, it.name)%> }<%if (it != state_last) {%>,<%}%> <% } %>\ ], "allocatable":[ <% alloc_last = util2.getAllocatableList(it).get(util2.getAllocatableList(it).size - 1); util2.getAllocatableList(it).each {%>\ "<%=util2.getFullNameWithClassName(it)%>"<%if (it != alloc_last) {%>,<%} %> <% } %>\ ]<% s = util2.jsonConstractorOtherThan(it, 3, Arrays.asList("class", "name", "size", "loserType", "contentGroup", "allocatable", "states")); if (s.size() > 1) {%><%=s%><%}%> }<%if (it != cont_last) {%>,<%}%> <% } } %>\ <% if(util.getSoundContents().size) { %>\ ], "soundcontents":[ <% cont_last = util.getSoundContents().get(util.getSoundContents().size - 1); util.getSoundContents().each { %>\ { "name":"<%=it.name%>",<%cont_name=it.name%> "loserType":"<%=it.getLoserType()%>", "states":[ <% state_last = it.getStates().get(it.getStates().size - 1); it.getStates().each { %>\ { "name":"<%=it.name%>", "priority":<%=util.getPriority(cont_name, it.name)%> }<%if (it != state_last) {%>,<%}%> <% } %>\ ], "allocatable":[ <% alloc_last = util2.getAllocatableList(it).get(util2.getAllocatableList(it).size - 1); util2.getAllocatableList(it).each {%>\ "<%=util2.getFullNameWithClassName(it)%>"<%if (it != alloc_last) {%>,<%} %> <% } %>\ ]<% s = util2.jsonConstractorOtherThan(it, 3, Arrays.asList("class", "name", "loserType", "contentGroup", "allocatable", "states")); if (s.size() > 1) {%><%=s%><%}%> }<%if (it != cont_last) {%>,<%} %> <% } } %>\ <% if(util.displays.size) { %>\ ], "displays":[ <% disp_last = util.displays.get(util.displays.size - 1); util.displays.each { disp = it; %>\ { "name":"<%=it.name%>", "size":{ "name":"<%=util.getDisplaySize(disp).name%>", "width":<%=util.getDisplaySize(disp).getWidth()%>, "height":<%=util.getDisplaySize(disp).getHeight()%> }, "PositionContainer":[ <% pos_last = it.root.layout.subAreaPosition.get(it.root.layout.subAreaPosition.size - 1) it.root.layout.subAreaPosition.each { %>\ { "x":<%=it.getX()%>, "y":<%=it.getY()%>, "basePoint":"<%=it.getBasePoint()%>", "areaReference":"<%=it.getArea().name%>"<% if (it.getOffset().size > 0) { %>, "Offset":[ <% offset_last = it.getOffset().get(it.getOffset().size -1); it.getOffset().each { %>\ { "x":<%=it.getX()%>, "y":<%=it.getY()%>, "sizeReference":"<%=it.getSize().getSize().name%>" }<% if (it != offset_last) {%>,<%} %>\ <% } %> ]<% } %> }<%if (it != pos_last) {%>,<%} %> <% } %>\ ] }<%if (it != disp_last) {%>,<%} %> <% } } %>\ <% if(util.getAreaSets().size) { %>\ ], "areasets":[ <% set_last = util.getAreaSets().get(util.getAreaSets().size - 1); util.getAreaSets().each { %>\ { "name":"<%=it.name%>", "target":[ <% tar_last = it.collectLeafAllocatable().get(it.collectLeafAllocatable().size - 1); it.collectLeafAllocatable().each { %>\ "<%=it.name%>"<%if (it != tar_last) {%>,<%} %> <% } %>\ ] }<% if (it != set_last) {%>,<%} %> <% } } %>\ <% if(util.getZoneSets().size) { %>\ ], "zonesets":[ <% set_last = util.getZoneSets().get(util.getZoneSets().size - 1); util.getZoneSets().each { %>\ { "name":"<%=it.name%>", "target":[ <% tar_last = it.collectLeafAllocatable().get(it.collectLeafAllocatable().size - 1); it.collectLeafAllocatable().each { %>\ "<%=it.name%>"<%if (it != tar_last) {%>,<%} %> <% } %>\ ] }<% if (it != set_last) {%>,<%} %> <% } } %>\ <% if(util.getViewContentSets().size) { %>\ ], "viewcontentsets":[ <% set_last = util.getViewContentSets().get(util.getViewContentSets().size - 1); util.getViewContentSets().each { %>\ { "name":"<%=it.name%>", "target":[ <% isFirst = true; util2.getLeafContentList(it).each { if (!isFirst) { %>, <% } else { isFirst = false; } %>\ "<%=it.name%>"<% } %> ] }<% if (it != set_last) {%>,<%} %> <% } } %>\ <% if(util.getSoundContentSets().size) { %>\ ], "soundcontentsets":[ <% set_last = util.getSoundContentSets().get(util.getSoundContentSets().size - 1); util.getSoundContentSets().each { %>\ { "name":"<%=it.name%>", "target":[ <% isFirst = true; util2.getLeafContentList(it).each { if (!isFirst) {%>, <% } else { isFirst = false; } %>\ "<%=it.name%>"<% } %> ] }<% if (it != set_last) {%>,<%} %> <% } } %>\ <% if(util.scenes.size) { %>\ ], "scenes":[ <% scene_last = util.scenes.get(util.scenes.size - 1); util.scenes.each { %>\ { "name":"<%=it.name%>", "global":"<%=it.isGlobal()%>"<% if (it.isGlobal() && (it.getProperties().size > 0)) { %>, "property":[ <% prop_last = it.getProperties().get(it.getProperties().size - 1); it.getProperties().each { %>\ { "name":"<%=it.name%>", "value":<%=it.getValue().getValue()%> }<% if (it != prop_last) {%>,<%} %> <% }%>\ ]<% s = util2.jsonConstractorOtherThan(it, 3, Arrays.asList("class", "name", "global", "properties")); if (s.size() > 1) {%><%=s%><%}%><% }%> }<%if (it != scene_last) {%>,<%} %> <% } } %>\ <% if(util.constraints.size) { %>\ ], "constraints":[<% exp_last = util.constraints.get(util.constraints.size - 1); nest = 2; util.constraints.each { %><%=util2.jsonConstractor(it, nest)%><%if (it != exp_last) {%>,<%} %>\ <% } %> <% } %>\ <% util2.setAll(util.areas, util.zones, util.viewContents, util.soundContents); ConstraintVisitor.setAll(util.areas, util.zones, util.viewContents, util.soundContents); Map alloc_constraint_map = new HashMap(); if(util.areas.size > 0) {%>\ ], "area_constraint_map":[<% util.areas.each { if (it != util.areas.get(0)) {%>,<%} area = it; alloc_constraint_map.put(area, new HashSet()); allocateVisitor.setTarget(area); %> {"<%=area.name%>":[<% isFirst = true; util.constraints.each { try { if (it.runtime) { checkResult = allocateVisitor.visitBool(it.expression); if ( (checkResult == ConstraintVisitResult.ALWAYS_FALSE) || (checkResult == ConstraintVisitResult.POSSIBLE_FALSE) || (checkResult == ConstraintVisitResult.POSSIBLE) || (checkResult == ConstraintVisitResult.POSSIBLE_TRUE) ) { alloc_constraint_map.get(area).add(it); constraint_alloc_map.addRelationship(it,area); if (!isFirst) { %>,<%} else { isFirst = false; } %>"<%=it.name%>"<% } } } catch (e) { %> Exception @ <%=it.name%> <%=e%> <% } } %>]}<% } %> ], "area_hidden_true_check_constraint_map":[<% util.areas.each { if (it != util.areas.get(0)) {%>,<%} area = it; trueHiddenVisitor.setTarget(area); %> {"<%=area.name%>":[<% isFirst = true; util.constraints.each { try { if (it.runtime) { checkResult = trueHiddenVisitor.visitBool(it.expression); if ( (checkResult == ConstraintVisitResult.ALWAYS_FALSE) || (checkResult == ConstraintVisitResult.POSSIBLE_FALSE) || (checkResult == ConstraintVisitResult.POSSIBLE) || (checkResult == ConstraintVisitResult.POSSIBLE_TRUE) ) { constraint_alloc_map.addRelationship(it,area); if (!isFirst) { %>,<%} else { isFirst = false; } %>"<%=it.name%>"<% } } } catch (e) { %> Exception @ <%=it.name%> <%=e%> <% } } %>]}<% } %> ], "area_hidden_false_check_constraint_map":[<% util.areas.each { if (it != util.areas.get(0)) {%>,<%} area = it; falseHiddenVisitor.setTarget(area); %> {"<%=area.name%>":[<% isFirst = true; util.constraints.each { try { if (it.runtime) { checkResult = falseHiddenVisitor.visitBool(it.expression); if ( (checkResult == ConstraintVisitResult.ALWAYS_FALSE) || (checkResult == ConstraintVisitResult.POSSIBLE_FALSE) || (checkResult == ConstraintVisitResult.POSSIBLE) || (checkResult == ConstraintVisitResult.POSSIBLE_TRUE) ) { constraint_alloc_map.addRelationship(it,area); if (!isFirst) { %>,<%} else { isFirst = false; } %>"<%=it.name%>"<% } } } catch (e) { %> Exception @ <%=it.name%> <%=e%> <% } } %>]}<% } %> <% }%>\ <% if(util.zones.size > 0) { %>\ ], "zone_constraint_map":[<% util.zones.each { if (it != util.zones.get(0)) {%>,<%} zone = it; alloc_constraint_map.put(zone, new HashSet()); allocateVisitor.setTarget(zone); %> {"<%=zone.name%>":[<% isFirst = true; util.constraints.each { try { if (it.runtime) { checkResult = allocateVisitor.visitBool(it.expression); if ( (checkResult == ConstraintVisitResult.ALWAYS_FALSE) || (checkResult == ConstraintVisitResult.POSSIBLE_FALSE) || (checkResult == ConstraintVisitResult.POSSIBLE) || (checkResult == ConstraintVisitResult.POSSIBLE_TRUE) ) { constraint_alloc_map.addRelationship(it,zone); alloc_constraint_map.get(zone).add(it); if (!isFirst) { %>,<%} else { isFirst = false; } %>"<%=it.name%>"<% } } } catch (e) { %> Exception @ <%=it.name%> <%=e%> <% } } %>]}<% } %> ], "zone_mute_true_check_constraint_map":[<% util.zones.each { if (it != util.zones.get(0)) {%>,<%} zone = it; trueHiddenVisitor.setTarget(zone); %> {"<%=zone.name%>":[<% isFirst = true; util.constraints.each { try { if (it.runtime) { checkResult = trueHiddenVisitor.visitBool(it.expression); if ( (checkResult == ConstraintVisitResult.ALWAYS_FALSE) || (checkResult == ConstraintVisitResult.POSSIBLE_FALSE) || (checkResult == ConstraintVisitResult.POSSIBLE) || (checkResult == ConstraintVisitResult.POSSIBLE_TRUE) ) { constraint_alloc_map.addRelationship(it,zone); if (!isFirst) { %>,<%} else { isFirst = false; } %>"<%=it.name%>"<% } } } catch (e) { %> Exception @ <%=it.name%> <%=e%> <% } } %>]}<% } %> ], "zone_mute_false_check_constraint_map":[<% util.zones.each { if (it != util.zones.get(0)) {%>,<%} zone = it; falseHiddenVisitor.setTarget(zone); %> {"<%=zone.name%>":[<% isFirst = true; util.constraints.each { try { if (it.runtime) { checkResult = falseHiddenVisitor.visitBool(it.expression); if ( (checkResult == ConstraintVisitResult.ALWAYS_FALSE) || (checkResult == ConstraintVisitResult.POSSIBLE_FALSE) || (checkResult == ConstraintVisitResult.POSSIBLE) || (checkResult == ConstraintVisitResult.POSSIBLE_TRUE) ) { constraint_alloc_map.addRelationship(it,zone); if (!isFirst) { %>,<%} else { isFirst = false; } %>"<%=it.name%>"<% } } } catch (e) { %> Exception @ <%=it.name%> <%=e%> <% } } %>]}<% } %> ], "zone_attenuate_true_check_constraint_map":[<% util.zones.each { if (it != util.zones.get(0)) {%>,<%} zone = it; trueAttenuateVisitor.setTarget(zone); %> {"<%=zone.name%>":[<% isFirst = true; util.constraints.each { try { if (it.runtime) { checkResult = trueAttenuateVisitor.visitBool(it.expression); if ( (checkResult == ConstraintVisitResult.ALWAYS_FALSE) || (checkResult == ConstraintVisitResult.POSSIBLE_FALSE) || (checkResult == ConstraintVisitResult.POSSIBLE) || (checkResult == ConstraintVisitResult.POSSIBLE_TRUE) ) { constraint_alloc_map.addRelationship(it,zone); if (!isFirst) { %>,<%} else { isFirst = false; } %>"<%=it.name%>"<% } } } catch (e) { %> Exception @ <%=it.name%> <%=e%> <% } } %>]}<% } %> ], "zone_attenuate_false_check_constraint_map":[<% util.zones.each { if (it != util.zones.get(0)) {%>,<%} zone = it; falseAttenuateVisitor.setTarget(zone); %> {"<%=zone.name%>":[<% isFirst = true; util.constraints.each { try { if (it.runtime) { checkResult = falseAttenuateVisitor.visitBool(it.expression); if ( (checkResult == ConstraintVisitResult.ALWAYS_FALSE) || (checkResult == ConstraintVisitResult.POSSIBLE_FALSE) || (checkResult == ConstraintVisitResult.POSSIBLE) || (checkResult == ConstraintVisitResult.POSSIBLE_TRUE) ) { constraint_alloc_map.addRelationship(it,zone); if (!isFirst) { %>,<%} else { isFirst = false; } %>"<%=it.name%>"<% } } } catch (e) { %> Exception @ <%=it.name%> <%=e%> <% } } %>]}<% } }%>\ ] } }