Skip to content

Commit 8c1c538

Browse files
committed
#12 - Added string based factory methods.
1 parent 6f06a29 commit 8c1c538

File tree

3 files changed

+57
-5
lines changed

3 files changed

+57
-5
lines changed

java-warc-reactive/src/main/java/com/github/bottomlessarchive/warc/service/WarcRecordFluxFactory.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,20 @@ public class WarcRecordFluxFactory {
2222
private WarcRecordFluxFactory() {
2323
}
2424

25+
public static <T extends WarcContentBlock> Flux<WarcRecord<T>> buildWarcRecordFlux(@NotNull @NonNull final String warcLocation) {
26+
return Flux.fromStream(() -> WarcRecordStreamFactory.streamOf(warcLocation, EVERY_WARC_RECORD_TYPE));
27+
}
28+
29+
public static <T extends WarcContentBlock> Flux<WarcRecord<T>> buildWarcRecordFlux(@NotNull @NonNull final String warcLocation,
30+
@NotNull @NonNull final WarcRecordType... requiredRecordTypes) {
31+
return Flux.fromStream(() -> WarcRecordStreamFactory.streamOf(warcLocation, requiredRecordTypes));
32+
}
33+
34+
public static <T extends WarcContentBlock> Flux<WarcRecord<T>> buildWarcRecordFlux(@NotNull @NonNull final String warcLocation,
35+
@NotNull @NonNull final List<WarcRecordType> requiredRecordTypes) {
36+
return Flux.fromStream(() -> WarcRecordStreamFactory.streamOf(warcLocation, requiredRecordTypes));
37+
}
38+
2539
public static <T extends WarcContentBlock> Flux<WarcRecord<T>> buildWarcRecordFlux(@NotNull @NonNull final URI warcLocation) {
2640
return Flux.fromStream(() -> WarcRecordStreamFactory.streamOf(warcLocation, EVERY_WARC_RECORD_TYPE));
2741
}

java-warc/src/main/java/com/github/bottomlessarchive/warc/service/WarcRecordIteratorFactory.java

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import com.github.bottomlessarchive.warc.service.content.domain.WarcContentBlock;
44
import com.github.bottomlessarchive.warc.service.record.domain.WarcRecord;
5+
import lombok.NonNull;
6+
import org.jetbrains.annotations.NotNull;
57

68
import java.io.BufferedInputStream;
79
import java.io.IOException;
@@ -20,15 +22,23 @@ public class WarcRecordIteratorFactory {
2022
private WarcRecordIteratorFactory() {
2123
}
2224

23-
public static <T extends WarcContentBlock> Iterator<WarcRecord<T>> iteratorOf(final URI uri) {
25+
public static <T extends WarcContentBlock> Iterator<WarcRecord<T>> iteratorOf(@NotNull @NonNull final String location) {
26+
try {
27+
return iteratorOf(new URL(location));
28+
} catch (MalformedURLException e) {
29+
throw new WarcNetworkException("Unable to parse WARC location: " + location + "!", e);
30+
}
31+
}
32+
33+
public static <T extends WarcContentBlock> Iterator<WarcRecord<T>> iteratorOf(@NotNull @NonNull final URI uri) {
2434
try {
2535
return iteratorOf(uri.toURL());
2636
} catch (MalformedURLException e) {
2737
throw new WarcNetworkException("Unable to parse WARC location: " + uri + "!", e);
2838
}
2939
}
3040

31-
public static <T extends WarcContentBlock> Iterator<WarcRecord<T>> iteratorOf(final URL url) {
41+
public static <T extends WarcContentBlock> Iterator<WarcRecord<T>> iteratorOf(@NotNull @NonNull final URL url) {
3242
try {
3343
return iteratorOf(new AvailableInputStream(new BufferedInputStream(url.openStream(), ONE_MEGABYTE_IN_BYTE)),
3444
WarcReader.DEFAULT_CHARSET, true);
@@ -37,15 +47,17 @@ public static <T extends WarcContentBlock> Iterator<WarcRecord<T>> iteratorOf(fi
3747
}
3848
}
3949

40-
public static <T extends WarcContentBlock> Iterator<WarcRecord<T>> iteratorOf(final InputStream inputStream) {
50+
public static <T extends WarcContentBlock> Iterator<WarcRecord<T>> iteratorOf(@NotNull @NonNull final InputStream inputStream) {
4151
return iteratorOf(inputStream, WarcReader.DEFAULT_CHARSET);
4252
}
4353

44-
public static <T extends WarcContentBlock> Iterator<WarcRecord<T>> iteratorOf(final InputStream inputStream, final Charset charset) {
54+
public static <T extends WarcContentBlock> Iterator<WarcRecord<T>> iteratorOf(@NotNull @NonNull final InputStream inputStream,
55+
@NotNull @NonNull final Charset charset) {
4556
return iteratorOf(new BufferedInputStream(inputStream, ONE_MEGABYTE_IN_BYTE), charset, true);
4657
}
4758

48-
public static <T extends WarcContentBlock> Iterator<WarcRecord<T>> iteratorOf(final InputStream inputStream, final Charset charset,
59+
public static <T extends WarcContentBlock> Iterator<WarcRecord<T>> iteratorOf(@NotNull @NonNull final InputStream inputStream,
60+
@NotNull @NonNull final Charset charset,
4961
final boolean compressed) {
5062
final WarcReader warcReader = new WarcReader(inputStream, charset, compressed);
5163

java-warc/src/main/java/com/github/bottomlessarchive/warc/service/WarcRecordStreamFactory.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,32 @@ public class WarcRecordStreamFactory {
2525
private WarcRecordStreamFactory() {
2626
}
2727

28+
public static <T extends WarcContentBlock> Stream<WarcRecord<T>> streamOf(@NotNull @NonNull final String location) {
29+
try {
30+
return WarcRecordStreamFactory.streamOf(new URL(location), EVERY_WARC_RECORD_TYPE);
31+
} catch (MalformedURLException e) {
32+
throw new WarcNetworkException("Unable to parse WARC location: " + location + "!", e);
33+
}
34+
}
35+
36+
public static <T extends WarcContentBlock> Stream<WarcRecord<T>> streamOf(@NotNull @NonNull final String location,
37+
@NotNull @NonNull final WarcRecordType... requiredRecordTypes) {
38+
try {
39+
return streamOf(new URL(location), requiredRecordTypes);
40+
} catch (MalformedURLException e) {
41+
throw new WarcNetworkException("Unable to parse WARC location: " + location + "!", e);
42+
}
43+
}
44+
45+
public static <T extends WarcContentBlock> Stream<WarcRecord<T>> streamOf(@NotNull @NonNull final String location,
46+
@NotNull @NonNull final List<WarcRecordType> requiredRecordTypes) {
47+
try {
48+
return streamOf(new URL(location), requiredRecordTypes);
49+
} catch (MalformedURLException e) {
50+
throw new WarcNetworkException("Unable to parse WARC location: " + location + "!", e);
51+
}
52+
}
53+
2854
public static <T extends WarcContentBlock> Stream<WarcRecord<T>> streamOf(@NotNull @NonNull final URI uri) {
2955
try {
3056
return WarcRecordStreamFactory.streamOf(uri.toURL(), EVERY_WARC_RECORD_TYPE);

0 commit comments

Comments
 (0)