package org.archive.resource.warc.record;
import java.io.IOException;
import java.io.InputStream;
import org.archive.RecoverableRecordFormatException;
import org.archive.format.dns.DNSResponse;
import org.archive.format.dns.DNSResponseParser;
import org.archive.resource.MetaData;
import org.archive.resource.ResourceConstants;
import org.archive.resource.Resource;
import org.archive.resource.ResourceContainer;
import org.archive.resource.ResourceFactory;
import org.archive.resource.ResourceParseException;
public class DNSResourceFactory implements ResourceFactory, ResourceConstants {
DNSResponseParser parser = new DNSResponseParser();
public Resource getResource(InputStream is, MetaData parentMetaData,
ResourceContainer container) throws ResourceParseException,
IOException {
DNSResponse response = new DNSResponse();
try {
parser.parse(is, response);
} catch(RecoverableRecordFormatException e) {
throw new ResourceParseException(e);
}
parentMetaData.putString(PAYLOAD_CONTENT_TYPE, PAYLOAD_TYPE_DNS);
return new DNSResource(parentMetaData.createChild(DNS_METADATA), container, response);
}
}