package org.archive.resource.warc.record;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import org.archive.resource.MetaData;
import org.archive.resource.Resource;
import org.archive.resource.ResourceConstants;
import org.archive.resource.ResourceContainer;
import org.archive.resource.ResourceFactory;
import org.archive.resource.ResourceParseException;
import org.json.JSONException;
import org.json.JSONTokener;
public class WARCJSONMetaDataResourceFactory implements ResourceFactory, ResourceConstants {
private static final Charset UTF8 = Charset.forName("UTF-8");
public WARCJSONMetaDataResourceFactory() {
}
public Resource getResource(InputStream is, MetaData parentMetaData,
ResourceContainer container) throws ResourceParseException,
IOException {
MetaData md;
try {
md = new MetaData(new JSONTokener(new InputStreamReader(is, UTF8)));
} catch (JSONException e) {
throw new ResourceParseException(e);
}
return new WARCJSONMetaDataResource(md, container);
}
}