4 changed files with 108 additions and 97 deletions
@ -0,0 +1,82 @@ |
|||||||
|
package com.jayway.jsonpath.internal; |
||||||
|
|
||||||
|
import com.jayway.jsonpath.Configuration; |
||||||
|
import com.jayway.jsonpath.DocumentContext; |
||||||
|
import com.jayway.jsonpath.ParseContext; |
||||||
|
|
||||||
|
import java.io.File; |
||||||
|
import java.io.FileInputStream; |
||||||
|
import java.io.IOException; |
||||||
|
import java.io.InputStream; |
||||||
|
import java.net.URL; |
||||||
|
|
||||||
|
import static com.jayway.jsonpath.internal.Utils.notEmpty; |
||||||
|
import static com.jayway.jsonpath.internal.Utils.notNull; |
||||||
|
|
||||||
|
public class ParseContextImpl implements ParseContext { |
||||||
|
|
||||||
|
private final Configuration configuration; |
||||||
|
|
||||||
|
public ParseContextImpl() { |
||||||
|
this(Configuration.defaultConfiguration()); |
||||||
|
} |
||||||
|
|
||||||
|
public ParseContextImpl(Configuration configuration) { |
||||||
|
this.configuration = configuration; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public DocumentContext parse(Object json) { |
||||||
|
notNull(json, "json object can not be null"); |
||||||
|
return new JsonContext(json, configuration); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public DocumentContext parse(String json) { |
||||||
|
notEmpty(json, "json string can not be null or empty"); |
||||||
|
Object obj = configuration.jsonProvider().parse(json); |
||||||
|
return new JsonContext(obj, configuration); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public DocumentContext parse(InputStream json) { |
||||||
|
return parse(json, "UTF-8"); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public DocumentContext parse(InputStream json, String charset) { |
||||||
|
notNull(json, "json input stream can not be null"); |
||||||
|
notNull(json, "charset can not be null"); |
||||||
|
try { |
||||||
|
Object obj = configuration.jsonProvider().parse(json, charset); |
||||||
|
return new JsonContext(obj, configuration); |
||||||
|
} finally { |
||||||
|
Utils.closeQuietly(json); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public DocumentContext parse(File json) throws IOException { |
||||||
|
notNull(json, "json file can not be null"); |
||||||
|
FileInputStream fis = null; |
||||||
|
try { |
||||||
|
fis = new FileInputStream(json); |
||||||
|
return parse(fis); |
||||||
|
} finally { |
||||||
|
Utils.closeQuietly(fis); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public DocumentContext parse(URL url) throws IOException { |
||||||
|
notNull(url, "url can not be null"); |
||||||
|
InputStream fis = null; |
||||||
|
try { |
||||||
|
fis = url.openStream(); |
||||||
|
return parse(fis); |
||||||
|
} finally { |
||||||
|
Utils.closeQuietly(fis); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue