Javolution 6.0.0 java
XMLInputFactoryImpl.java
Go to the documentation of this file.
1 /*
2  * Javolution - Java(TM) Solution for Real-Time and Embedded Systems
3  * Copyright (C) 2012 - Javolution (http://javolution.org/)
4  * All rights reserved.
5  *
6  * Permission to use, copy, modify, and distribute this software is
7  * freely granted, provided that this notice is preserved.
8  */
9 package javolution.xml.internal.stream;
10 
11 import java.io.InputStream;
12 import java.io.Reader;
13 import java.util.Map;
14 
18 
22 public final class XMLInputFactoryImpl implements XMLInputFactory {
23  private Map<String, String> _entities = null;
25  .shared();
26 
27  // Implements XMLInputFactory abstract method.
28  public XMLStreamReaderImpl createXMLStreamReader(InputStream stream)
29  throws XMLStreamException {
30  XMLStreamReaderImpl xmlReader = newReader();
31  xmlReader.setInput(stream);
32  return xmlReader;
33  }
34 
35  // Implements XMLInputFactory abstract method.
36  public XMLStreamReaderImpl createXMLStreamReader(InputStream stream,
37  String encoding) throws XMLStreamException {
38  XMLStreamReaderImpl xmlReader = newReader();
39  xmlReader.setInput(stream, encoding);
40  return xmlReader;
41  }
42 
43  // Implements XMLInputFactory abstract method.
45  throws XMLStreamException {
46  XMLStreamReaderImpl xmlReader = newReader();
47  xmlReader.setInput(reader);
48  return xmlReader;
49  }
50 
51  // Implements XMLInputFactory abstract method.
52  public Object getProperty(String name) throws IllegalArgumentException {
53  if (name.equals(IS_COALESCING)) {
54  return Boolean.TRUE;
55  } else if (name.equals(ENTITIES)) {
56  return _entities;
57  } else {
58  throw new IllegalArgumentException("Property: " + name
59  + " not supported");
60  }
61  }
62 
63  // Implements XMLInputFactory abstract method.
64  public boolean isPropertySupported(String name) {
65  return name.equals(IS_COALESCING) || name.equals(ENTITIES);
66  }
67 
68  // Implements XMLInputFactory abstract method.
69  @SuppressWarnings("unchecked")
70  public void setProperty(String name, Object value)
71  throws IllegalArgumentException {
72  if (name.equals(IS_COALESCING)) {
73  // Do nothing, always coalescing.
74  } else if (name.equals(ENTITIES)) {
75  _entities = (Map<String, String>) value;
76  } else {
77  throw new IllegalArgumentException("Property: " + name
78  + " not supported");
79  }
80  }
81 
84  _recycled.addLast(reader);
85  }
86 
88  XMLStreamReaderImpl xmlReader = _recycled.pollLast();
89  if (xmlReader == null) xmlReader = new XMLStreamReaderImpl(this);
90  if (_entities != null) {
91  xmlReader.setEntities(_entities);
92  }
93  return xmlReader;
94  }
95 
96  @Override
98  try {
100  clone._recycled = new FastTable<XMLStreamReaderImpl>().shared();
101  return clone;
102  } catch (CloneNotSupportedException e) {
103  throw new Error();// Cannot happen since cloneable.
104  }
105  }
106 }
javolution
javolution.xml.internal.stream.XMLStreamReaderImpl.setInput
void setInput(InputStream in)
Definition: XMLStreamReaderImpl.java:216
javolution.xml.stream.XMLInputFactory.clone
XMLInputFactory clone()
javolution.xml.stream.XMLInputFactory.IS_COALESCING
static final String IS_COALESCING
Definition: XMLInputFactory.java:60
javolution.xml.internal.stream.XMLInputFactoryImpl.createXMLStreamReader
XMLStreamReaderImpl createXMLStreamReader(InputStream stream)
Definition: XMLInputFactoryImpl.java:28
javolution.xml.internal.stream.XMLInputFactoryImpl._entities
Map< String, String > _entities
Definition: XMLInputFactoryImpl.java:23
javolution.xml.stream.XMLStreamException
Definition: XMLStreamException.java:17
javolution.xml.internal.stream.XMLInputFactoryImpl.clone
XMLInputFactory clone()
Definition: XMLInputFactoryImpl.java:97
javolution.xml.internal.stream.XMLInputFactoryImpl._recycled
FastTable< XMLStreamReaderImpl > _recycled
Definition: XMLInputFactoryImpl.java:24
javolution.xml.stream.XMLInputFactory
Definition: XMLInputFactory.java:54
javolution.xml.internal.stream.XMLInputFactoryImpl.createXMLStreamReader
XMLStreamReaderImpl createXMLStreamReader(InputStream stream, String encoding)
Definition: XMLInputFactoryImpl.java:36
javolution.util.FastTable.shared
FastTable< E > shared()
Definition: FastTable.java:135
javolution.xml.internal.stream.XMLStreamReaderImpl
Definition: XMLStreamReaderImpl.java:38
javolution.xml.internal.stream.XMLInputFactoryImpl.newReader
XMLStreamReaderImpl newReader()
Definition: XMLInputFactoryImpl.java:87
javolution.xml.internal.stream.XMLInputFactoryImpl.getProperty
Object getProperty(String name)
Definition: XMLInputFactoryImpl.java:52
javolution.xml.internal.stream.XMLInputFactoryImpl.recycle
void recycle(XMLStreamReaderImpl reader)
Definition: XMLInputFactoryImpl.java:83
javolution.xml.internal.stream.XMLInputFactoryImpl
Definition: XMLInputFactoryImpl.java:22
javolution.xml.stream.XMLInputFactory.ENTITIES
static final String ENTITIES
Definition: XMLInputFactory.java:80
javolution.xml.internal.stream.XMLInputFactoryImpl.createXMLStreamReader
XMLStreamReaderImpl createXMLStreamReader(Reader reader)
Definition: XMLInputFactoryImpl.java:44
javolution.xml.internal.stream.XMLInputFactoryImpl.isPropertySupported
boolean isPropertySupported(String name)
Definition: XMLInputFactoryImpl.java:64
javolution.xml.internal.stream.XMLInputFactoryImpl.setProperty
void setProperty(String name, Object value)
Definition: XMLInputFactoryImpl.java:70
javolution.xml
Definition: DefaultXMLFormat.java:9
javolution.xml.stream
Definition: Location.java:9
javolution.xml.internal.stream.XMLStreamReaderImpl.setEntities
void setEntities(Map< String, String > entities)
Definition: XMLStreamReaderImpl.java:365
javolution.util
Definition: FastBitSet.java:9
javolution.util.FastTable
Definition: FastTable.java:88