@Override public void generate(CacheXmlGenerator cacheXmlGenerator) throws SAXException { final ContentHandler handler = cacheXmlGenerator.getContentHandler(); handler.startPrefixMapping(PREFIX, NAMESPACE); AttributesImpl attr = new AttributesImpl(); // TODO - should the type be xs:string ? XmlGeneratorUtils.addAttribute(attr, NAME, index.getName()); XmlGeneratorUtils.startElement(handler, PREFIX, INDEX, attr); for (String field : index.getFieldNames()) { AttributesImpl fieldAttr = new AttributesImpl(); XmlGeneratorUtils.addAttribute(fieldAttr, NAME, field); Analyzer analyzer = index.getFieldAnalyzers().get(field); if (analyzer != null) { XmlGeneratorUtils.addAttribute(fieldAttr, ANALYZER, analyzer.getClass().getName()); } XmlGeneratorUtils.emptyElement(handler, PREFIX, FIELD, fieldAttr); } LuceneSerializer serializer = index.getLuceneSerializer(); if (serializer != null) { XmlGeneratorUtils.startElement(handler, PREFIX, SERIALIZER, EMPTY); XmlGeneratorUtils.addDeclarable(handler, serializer); XmlGeneratorUtils.endElement(handler, PREFIX, SERIALIZER); } XmlGeneratorUtils.endElement(handler, PREFIX, INDEX); } }
/** * Creates new empty element on <code>contentHandler</code> with given <code>prefix</code>, * <code>localName</code> and <code>attributes</code>. * * @param contentHandler to create empty element on. * @param prefix of element * @param localName of element * @param attributes of element * @throws SAXException if {@link ContentHandler#startElement(String, String, String, Attributes)} * or {@link ContentHandler#endElement(String, String, String)} throws * {@link SAXException}. * @since GemFire 8.1 */ public static void emptyElement(final ContentHandler contentHandler, final String prefix, final String localName, final AttributesImpl attributes) throws SAXException { startElement(contentHandler, prefix, localName, attributes); endElement(contentHandler, prefix, localName); }
@Override public void generate(CacheXmlGenerator cacheXmlGenerator) throws SAXException { final ContentHandler handler = cacheXmlGenerator.getContentHandler(); try { handler.startPrefixMapping(PREFIX, NAMESPACE); final AttributesImpl atts = new AttributesImpl(); addAttribute(atts, ATTRIBUTE_VALUE, extension.getValue()); emptyElement(handler, PREFIX, ELEMENT_REGION, atts); } finally { handler.endPrefixMapping(PREFIX); } } }
private void addField(String fieldName, String analyzerClassName) throws SAXException { AttributesImpl field = new AttributesImpl(); XmlGeneratorUtils.addAttribute(field, LuceneXmlConstants.NAME, fieldName); if (analyzerClassName != null) { XmlGeneratorUtils.addAttribute(field, LuceneXmlConstants.ANALYZER, analyzerClassName); } this.parser.startElement(LuceneXmlConstants.NAMESPACE, LuceneXmlConstants.FIELD, null, field); this.parser.endElement(LuceneXmlConstants.NAMESPACE, LuceneXmlConstants.FIELD, null); } }
/** * Test method for {@link XmlGeneratorUtils#endElement(ContentHandler, String, String)}. */ @Test public void testEndElementContentHandlerStringString() throws SAXException { final AtomicReference<String> uriRef = new AtomicReference<String>(); final AtomicReference<String> localnameRef = new AtomicReference<String>(); final AtomicReference<String> qNameRef = new AtomicReference<String>(); final ContentHandler contentHandler = new MockContentHandler() { @Override public void endElement(String uri, String localName, String qName) throws SAXException { uriRef.set(uri); localnameRef.set(localName); qNameRef.set(qName); } }; XmlGeneratorUtils.endElement(contentHandler, "prefix", "localname"); assertEquals("localname", localnameRef.get()); assertEquals("prefix:localname", qNameRef.get()); assertEquals(NULL_NS_URI, uriRef.get()); }
/** * Test method for * {@link XmlGeneratorUtils#startElement(ContentHandler, String, String, AttributesImpl)}. */ @Test public void testStartElementContentHandlerStringStringAttributesImpl() throws SAXException { final AtomicReference<String> uriRef = new AtomicReference<String>(); final AtomicReference<String> localnameRef = new AtomicReference<String>(); final AtomicReference<String> qNameRef = new AtomicReference<String>(); final AtomicReference<Attributes> attributesRef = new AtomicReference<Attributes>(); final ContentHandler contentHandler = new MockContentHandler() { @Override public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException { uriRef.set(uri); localnameRef.set(localName); qNameRef.set(qName); attributesRef.set(atts); } }; XmlGeneratorUtils.startElement(contentHandler, "prefix", "localname", null); assertEquals("localname", localnameRef.get()); assertEquals("prefix:localname", qNameRef.get()); assertEquals(NULL_NS_URI, uriRef.get()); assertNull(attributesRef.get()); }
XmlGeneratorUtils.emptyElement(contentHandler, "prefix", "localname", null);
addDeclarable(handler, (Declarable) value); handler.endElement("", DECLARABLE, DECLARABLE);
@Test public void attemptInvalidAnalyzerClass() throws SAXException { AttributesImpl attrs = new AttributesImpl(); XmlGeneratorUtils.addAttribute(attrs, LuceneXmlConstants.NAME, "index"); this.parser.startElement(LuceneXmlConstants.NAMESPACE, LuceneXmlConstants.INDEX, null, attrs); try { addField("field", "some.invalid.class"); fail("Should not have been able to add a field with an invalid analyzer class name"); } catch (Exception e) { } }
@Override public void generate(CacheXmlGenerator cacheXmlGenerator) throws SAXException { final ContentHandler handler = cacheXmlGenerator.getContentHandler(); try { handler.startPrefixMapping(PREFIX, NAMESPACE); final AttributesImpl atts = new AttributesImpl(); addAttribute(atts, ATTRIBUTE_VALUE, extension.getValue()); emptyElement(handler, PREFIX, ELEMENT_CACHE, atts); } finally { handler.endPrefixMapping("mock"); } } }
@Test public void generateWithFields() throws SAXException { AttributesImpl attrs = new AttributesImpl(); XmlGeneratorUtils.addAttribute(attrs, LuceneXmlConstants.NAME, "index"); this.parser.startElement(LuceneXmlConstants.NAMESPACE, LuceneXmlConstants.INDEX, null, attrs); addField("field1"); addField("field2"); addField("field3", KeywordAnalyzer.class.getName()); this.parser.endElement(LuceneXmlConstants.NAMESPACE, LuceneXmlConstants.INDEX, null); assertEquals(this.rc, this.stack.peek()); LuceneIndexCreation index = (LuceneIndexCreation) this.rc.getExtensionPoint().getExtensions().iterator().next(); assertEquals("index", index.getName()); assertArrayEquals(new String[] {"field1", "field2", "field3"}, index.getFieldNames()); // Assert analyzers Map<String, Analyzer> fieldAnalyzers = index.getFieldAnalyzers(); assertEquals(1, fieldAnalyzers.size()); assertTrue(fieldAnalyzers.containsKey("field3")); assertTrue(fieldAnalyzers.get("field3") instanceof KeywordAnalyzer); }
addAttribute(atts, W3C_XML_SCHEMA_INSTANCE_PREFIX, W3C_XML_SCHEMA_INSTANCE_ATTRIBUTE_SCHEMA_LOCATION, version.getNamespace() + " " + version.getSchemaLocation()); addAttribute(atts, VERSION, this.version.getVersion());
/** * Test method for {@link XmlGeneratorUtils#addAttribute(AttributesImpl, String, String, Object)}. */ @Test public void testAddAttributeAttributesImplStringStringObject() { final AttributesImpl attributes = new AttributesImpl(); assertEquals(0, attributes.getLength()); XmlGeneratorUtils.addAttribute(attributes, "prefix", "localname", null); assertEquals(0, attributes.getLength()); XmlGeneratorUtils.addAttribute(attributes, "prefix", "localname", "value"); assertEquals(1, attributes.getLength()); assertEquals("localname", attributes.getLocalName(0)); assertEquals("prefix:localname", attributes.getQName(0)); assertEquals(NULL_NS_URI, attributes.getURI(0)); assertEquals("value", attributes.getValue(0)); }
/** * Test method for {@link XmlGeneratorUtils#addAttribute(AttributesImpl, String, Object)}. */ @Test public void testAddAttributeAttributesImplStringObject() { final AttributesImpl attributes = new AttributesImpl(); assertEquals(0, attributes.getLength()); XmlGeneratorUtils.addAttribute(attributes, "localname", null); assertEquals(0, attributes.getLength()); XmlGeneratorUtils.addAttribute(attributes, "localname", "value"); assertEquals(1, attributes.getLength()); assertEquals("localname", attributes.getLocalName(0)); assertEquals("localname", attributes.getQName(0)); assertEquals(XMLConstants.NULL_NS_URI, attributes.getURI(0)); assertEquals("value", attributes.getValue(0)); }