Class JsonStreamFactory
- java.lang.Object
-
- org.apache.synapse.commons.staxon.core.json.stream.JsonStreamFactory
-
- Direct Known Subclasses:
JsonStreamFactoryImpl
public abstract class JsonStreamFactory extends Object
Abstract JSON stream (JsonStreamSource
andJsonStreamTarget
) factory.This class provides the static
newFactory()
method to lookup and instantiate a default implementation using the Services API (as detailed in the JAR specification).
-
-
Constructor Summary
Constructors Constructor Description JsonStreamFactory()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract JsonStreamSource
createJsonStreamSource(InputStream input)
Create stream source.abstract JsonStreamSource
createJsonStreamSource(InputStream input, Constants.SCANNER scanner)
Create stream source.abstract JsonStreamSource
createJsonStreamSource(Reader reader)
Create stream source.abstract JsonStreamSource
createJsonStreamSource(Reader reader, Constants.SCANNER scanner)
Create stream source.abstract JsonStreamTarget
createJsonStreamTarget(OutputStream output, boolean pretty)
Create stream target.abstract JsonStreamTarget
createJsonStreamTarget(Writer writer, boolean pretty)
Create stream target.static JsonStreamFactory
newFactory()
Create a new instance of a JsonStreamFactory.
-
-
-
Method Detail
-
newFactory
public static JsonStreamFactory newFactory() throws FactoryConfigurationError
Create a new instance of a JsonStreamFactory.
Determines the class to instantiate as follows:
- Use the Services API (as detailed in the JAR specification). If a resource with the name of META-INF/services/de.odysseus.staxon.json.stream.JsonStreamFactory exists, then its first line, if present, is used as the UTF-8 encoded name of the implementation class.
- Use the properties file "lib/staxon.properties" in the JRE directory. If this file exists and is readable by the java.util.Properties.load(InputStream) method, and it contains an entry whose key is "de.odysseus.staxon.json.stream.JsonStreamFactory", then the value of that entry is used as the name of the implementation class.
- Use the de.odysseus.staxon.json.stream.JsonStreamFactory system property. If a system property with this name is defined, then its value is used as the name of the implementation class.
- Use platform default: "de.odysseus.staxon.json.stream.impl.JsonStreamFactoryImpl".
- Returns:
- An instance of JsonStreamFactory.
- Throws:
FactoryConfigurationError
- if a factory class cannot be found or instantiation fails.
-
createJsonStreamSource
public abstract JsonStreamSource createJsonStreamSource(InputStream input) throws IOException
Create stream source.- Parameters:
input
-- Returns:
- stream source
- Throws:
IOException
-
createJsonStreamSource
public abstract JsonStreamSource createJsonStreamSource(InputStream input, Constants.SCANNER scanner) throws IOException
Create stream source.- Parameters:
input
-scanner
- JSON Scanner to use- Returns:
- stream source
- Throws:
IOException
-
createJsonStreamSource
public abstract JsonStreamSource createJsonStreamSource(Reader reader) throws IOException
Create stream source.- Parameters:
reader
-- Returns:
- stream source
- Throws:
IOException
-
createJsonStreamSource
public abstract JsonStreamSource createJsonStreamSource(Reader reader, Constants.SCANNER scanner) throws IOException
Create stream source.- Parameters:
reader
-scanner
- JSON Scanner to use- Returns:
- stream source
- Throws:
IOException
-
createJsonStreamTarget
public abstract JsonStreamTarget createJsonStreamTarget(OutputStream output, boolean pretty) throws IOException
Create stream target.- Parameters:
output
-pretty
-- Returns:
- stream target
- Throws:
IOException
-
createJsonStreamTarget
public abstract JsonStreamTarget createJsonStreamTarget(Writer writer, boolean pretty) throws IOException
Create stream target.- Parameters:
writer
-pretty
-- Returns:
- stream target
- Throws:
IOException
-
-