Example usage for org.springframework.data.gemfire.config.xml ParsingUtils parseRefOrSingleNestedBeanDeclaration

List of usage examples for org.springframework.data.gemfire.config.xml ParsingUtils parseRefOrSingleNestedBeanDeclaration

Introduction

In this page you can find the example usage for org.springframework.data.gemfire.config.xml ParsingUtils parseRefOrSingleNestedBeanDeclaration.

Prototype

static Object parseRefOrSingleNestedBeanDeclaration(Element element, ParserContext parserContext,
            BeanDefinitionBuilder builder) 

Source Link

Usage

From source file:org.springframework.data.gemfire.config.xml.AbstractRegionParser.java

protected void doParseRegionConfiguration(Element element, ParserContext parserContext,
        BeanDefinitionBuilder regionBuilder, BeanDefinitionBuilder regionAttributesBuilder, boolean subRegion) {

    mergeRegionTemplateAttributes(element, parserContext, regionBuilder, regionAttributesBuilder);

    String resolvedCacheRef = ParsingUtils.resolveCacheReference(element.getAttribute("cache-ref"));

    if (!subRegion) {
        regionBuilder.addPropertyReference("cache", resolvedCacheRef);
        ParsingUtils.setPropertyValue(element, regionBuilder, "close");
        ParsingUtils.setPropertyValue(element, regionBuilder, "destroy");
    }//from  w  w  w .jav a2 s . co  m

    ParsingUtils.setPropertyValue(element, regionBuilder, "name");
    ParsingUtils.setPropertyValue(element, regionBuilder, "data-policy");
    ParsingUtils.setPropertyValue(element, regionBuilder, "ignore-if-exists", "lookupEnabled");
    ParsingUtils.setPropertyValue(element, regionBuilder, "persistent");
    ParsingUtils.setPropertyValue(element, regionBuilder, "shortcut");

    if (StringUtils.hasText(element.getAttribute("disk-store-ref"))) {
        ParsingUtils.setPropertyValue(element, regionBuilder, "disk-store-ref", "diskStoreName");
        regionBuilder.addDependsOn(element.getAttribute("disk-store-ref"));
    }

    ParsingUtils.parseOptionalRegionAttributes(element, parserContext, regionAttributesBuilder);
    ParsingUtils.parseSubscription(element, parserContext, regionAttributesBuilder);
    ParsingUtils.parseStatistics(element, regionAttributesBuilder);
    ParsingUtils.parseMembershipAttributes(element, parserContext, regionAttributesBuilder);
    ParsingUtils.parseExpiration(element, parserContext, regionAttributesBuilder);
    ParsingUtils.parseEviction(element, parserContext, regionAttributesBuilder);
    ParsingUtils.parseCompressor(element, parserContext, regionAttributesBuilder);

    parseCollectionOfCustomSubElements(element, parserContext, regionBuilder, AsyncEventQueue.class.getName(),
            "async-event-queue", "asyncEventQueues");

    parseCollectionOfCustomSubElements(element, parserContext, regionBuilder, GatewaySender.class.getName(),
            "gateway-sender", "gatewaySenders");

    List<Element> subElements = DomUtils.getChildElements(element);

    for (Element subElement : subElements) {
        if (subElement.getLocalName().equals("cache-listener")) {
            regionBuilder.addPropertyValue("cacheListeners",
                    ParsingUtils.parseRefOrNestedBeanDeclaration(subElement, parserContext, regionBuilder));
        } else if (subElement.getLocalName().equals("cache-loader")) {
            regionBuilder.addPropertyValue("cacheLoader", ParsingUtils
                    .parseRefOrSingleNestedBeanDeclaration(subElement, parserContext, regionBuilder));
        } else if (subElement.getLocalName().equals("cache-writer")) {
            regionBuilder.addPropertyValue("cacheWriter", ParsingUtils
                    .parseRefOrSingleNestedBeanDeclaration(subElement, parserContext, regionBuilder));
        }
    }

    if (!subRegion) {
        parseSubRegions(element, parserContext, resolvedCacheRef);
    }
}