Skip to content

Commit 11d268f

Browse files
evermind-zzStypox
authored andcommitted
searchfilters: annotate methods and their parameters as Nullable or Nonnull
1 parent 78c8a60 commit 11d268f

File tree

9 files changed

+120
-64
lines changed

9 files changed

+120
-64
lines changed

extractor/src/main/java/org/schabi/newpipe/extractor/search/filter/BaseSearchFilters.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
import java.util.List;
1010
import java.util.Map;
1111

12+
import javax.annotation.Nonnull;
13+
import javax.annotation.Nullable;
14+
1215
/**
1316
* The base class for every service describing their {@link FilterItem}s,
1417
* {@link FilterGroup}s, the relation between content filters and sort filters.
@@ -32,7 +35,7 @@ protected BaseSearchFilters() {
3235
*
3336
* @param selectedSortFilter list with sort filters identifiers
3437
*/
35-
public void setSelectedSortFilter(final List<FilterItem> selectedSortFilter) {
38+
public void setSelectedSortFilter(@Nullable final List<FilterItem> selectedSortFilter) {
3639
this.selectedSortFilter = selectedSortFilter;
3740
}
3841

@@ -41,7 +44,7 @@ public void setSelectedSortFilter(final List<FilterItem> selectedSortFilter) {
4144
*
4245
* @param selectedContentFilter the name of the content filter
4346
*/
44-
public void setSelectedContentFilter(final List<FilterItem> selectedContentFilter) {
47+
public void setSelectedContentFilter(@Nullable final List<FilterItem> selectedContentFilter) {
4548
this.selectedContentFilter = selectedContentFilter;
4649
}
4750

@@ -55,7 +58,7 @@ public void setSelectedContentFilter(final List<FilterItem> selectedContentFilte
5558
*
5659
* @return the query that should be appended to the searchUrl/whatever
5760
*/
58-
public String evaluateSelectedFilters(final String searchString) {
61+
public String evaluateSelectedFilters(@Nullable final String searchString) {
5962
// please implement method in derived class if you want to use it
6063
return null;
6164
}
@@ -115,7 +118,7 @@ protected void build() {
115118
*/
116119
protected void addContentFilterSortVariant(
117120
final int contentFilterId,
118-
final FilterContainer variant) {
121+
@Nonnull final FilterContainer variant) {
119122
this.sortFilterVariants.put(contentFilterId, variant);
120123
}
121124

@@ -152,7 +155,7 @@ public FilterItem getFilterItem(final int filterId) {
152155
/**
153156
* Add the content filter groups that should be available
154157
*/
155-
protected void addContentFilterGroup(final FilterGroup filterGroup) {
158+
protected void addContentFilterGroup(@Nonnull final FilterGroup filterGroup) {
156159
if (contentFilterGroups != null) {
157160
contentFilterGroups.add(filterGroup);
158161
} else {

extractor/src/main/java/org/schabi/newpipe/extractor/search/filter/FilterContainer.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import java.util.HashMap;
66
import java.util.Map;
77

8+
import javax.annotation.Nonnull;
9+
810
/**
911
* This class is a container that keeps either content filters or sort filters organized.
1012
*
@@ -20,7 +22,7 @@ public final class FilterContainer {
2022
private final Map<Integer, FilterItem> idToFilterItem = new HashMap<>();
2123
private final FilterGroup[] filterGroups;
2224

23-
public FilterContainer(final FilterGroup[] filterGroups) {
25+
public FilterContainer(@Nonnull final FilterGroup[] filterGroups) {
2426
this.filterGroups = filterGroups;
2527
for (final FilterGroup group : filterGroups) {
2628
for (final FilterItem item : group.getFilterItems()) {

extractor/src/main/java/org/schabi/newpipe/extractor/search/filter/FilterGroup.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
import java.util.HashMap;
66
import java.util.Map;
77

8+
import javax.annotation.Nonnull;
9+
import javax.annotation.Nullable;
10+
811
/**
912
* This class represents a filter category/group. For example 'Sort order'.
1013
* <p>
@@ -49,11 +52,11 @@ public final class FilterGroup {
4952
private final FilterContainer allSortFilters;
5053

5154
private FilterGroup(final int identifier,
52-
final LibraryStringIds groupNameId,
55+
@Nullable final LibraryStringIds groupNameId,
5356
final boolean onlyOneCheckable,
5457
final int defaultSelectedFilterId,
55-
final FilterItem[] filterItems,
56-
final FilterContainer allSortFilters) {
58+
@Nonnull final FilterItem[] filterItems,
59+
@Nullable final FilterContainer allSortFilters) {
5760
this.identifier = identifier;
5861
this.groupNameId = groupNameId;
5962
this.onlyOneCheckable = onlyOneCheckable;
@@ -154,18 +157,18 @@ void uniqueIdChecker(final Map<Integer, FilterItem> filterItems,
154157
* @param filter the new {@link FilterItem} to be added to the factory.
155158
* @return the identifier of the {@link FilterItem}
156159
*/
157-
public int addFilterItem(final FilterItem filter) {
160+
public int addFilterItem(@Nonnull final FilterItem filter) {
158161
uniqueIdChecker(filtersMap, filter);
159162
filtersMap.put(filter.getIdentifier(), filter);
160163
return filter.getIdentifier();
161164
}
162165

163166
public FilterGroup createFilterGroup(final int identifier,
164-
final LibraryStringIds groupNameId,
167+
@Nullable final LibraryStringIds groupNameId,
165168
final boolean onlyOneCheckable,
166169
final int defaultSelectedFilterId,
167-
final FilterItem[] filterItems,
168-
final FilterContainer allSortFilters) {
170+
@Nonnull final FilterItem[] filterItems,
171+
@Nullable final FilterContainer allSortFilters) {
169172
return new FilterGroup(identifier, groupNameId, onlyOneCheckable,
170173
defaultSelectedFilterId, filterItems, allSortFilters);
171174
}

extractor/src/main/java/org/schabi/newpipe/extractor/search/filter/FilterItem.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
package org.schabi.newpipe.extractor.search.filter;
44

5+
import javax.annotation.Nonnull;
6+
57
/**
68
* This class represents a single filter option.
79
* <p>
@@ -30,7 +32,7 @@ public class FilterItem {
3032
*/
3133
private final int identifier;
3234

33-
public FilterItem(final int identifier, final LibraryStringIds nameId) {
35+
public FilterItem(final int identifier, @Nonnull final LibraryStringIds nameId) {
3436
this.identifier = identifier;
3537
this.nameId = nameId;
3638
}

extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/search/filter/BandcampFilters.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import org.schabi.newpipe.extractor.search.filter.FilterItem;
77
import org.schabi.newpipe.extractor.search.filter.LibraryStringIds;
88

9+
import javax.annotation.Nonnull;
10+
911
public final class BandcampFilters extends BaseSearchFilters {
1012

1113
public static final int ID_CF_MAIN_GRP = 0;
@@ -65,7 +67,8 @@ protected void init() {
6567
public static class BandcampContentFilterItem extends FilterItem {
6668
private final String query;
6769

68-
public BandcampContentFilterItem(final int identifier, final LibraryStringIds nameId,
70+
public BandcampContentFilterItem(final int identifier,
71+
@Nonnull final LibraryStringIds nameId,
6972
final String query) {
7073
super(identifier, nameId);
7174
this.query = query;

extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/search/filter/PeertubeFilters.java

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
import java.time.format.DateTimeFormatter;
1414
import java.util.Optional;
1515

16+
import javax.annotation.Nonnull;
17+
import javax.annotation.Nullable;
18+
1619
import static org.schabi.newpipe.extractor.search.filter.FilterContainer.ITEM_IDENTIFIER_UNKNOWN;
1720

1821
public final class PeertubeFilters extends BaseSearchFilters {
@@ -58,12 +61,12 @@ public final class PeertubeFilters extends BaseSearchFilters {
5861
private boolean isAscending = false;
5962

6063
@Override
61-
public String evaluateSelectedFilters(final String searchString) {
64+
public String evaluateSelectedFilters(@Nullable final String searchString) {
6265
final StringBuilder sortQuery = new StringBuilder();
6366

6467
if (selectedSortFilter != null) {
6568
final Optional<FilterItem> ascendingFilter = selectedSortFilter.stream()
66-
.filter(filterItem -> filterItem instanceof PeertubeSortOrderFilterItem)
69+
.filter(PeertubeSortOrderFilterItem.class::isInstance)
6770
.findFirst();
6871
isAscending = ascendingFilter.isPresent();
6972
for (final FilterItem item : selectedSortFilter) {
@@ -256,8 +259,8 @@ protected void init() {
256259
addContentFilterSortVariant(ID_CF_MAIN_VIDEOS, allSortFilters);
257260
}
258261

259-
private void appendFilterToQueryString(final FilterItem item,
260-
final StringBuilder sortQuery) {
262+
private void appendFilterToQueryString(@Nonnull final FilterItem item,
263+
@Nonnull final StringBuilder sortQuery) {
261264
if (item instanceof PeertubeFilterItem) {
262265
final PeertubeFilterItem sortItem =
263266
(PeertubeFilterItem) item;
@@ -271,8 +274,9 @@ private void appendFilterToQueryString(final FilterItem item,
271274
private static class PeertubeFilterItem extends FilterItem {
272275
protected final String query;
273276

274-
PeertubeFilterItem(final int identifier, final LibraryStringIds nameId,
275-
final String query) {
277+
PeertubeFilterItem(final int identifier,
278+
@Nonnull final LibraryStringIds nameId,
279+
@Nullable final String query) {
276280
super(identifier, nameId);
277281
this.query = query;
278282
}
@@ -286,8 +290,9 @@ static class PeertubePublishedDateFilterItem extends PeertubeFilterItem {
286290
static final int NO_DAYS_SET = -1;
287291
private final int days;
288292

289-
PeertubePublishedDateFilterItem(final int identifier, final LibraryStringIds nameId,
290-
final String query, final int days) {
293+
PeertubePublishedDateFilterItem(final int identifier,
294+
@Nonnull final LibraryStringIds nameId,
295+
@Nullable final String query, final int days) {
291296
super(identifier, nameId, query);
292297
this.days = days;
293298
}
@@ -307,20 +312,23 @@ public String getQueryData() {
307312
}
308313

309314
public static class PeertubeSepiaFilterItem extends FilterItem {
310-
public PeertubeSepiaFilterItem(final int identifier, final LibraryStringIds nameId) {
315+
public PeertubeSepiaFilterItem(final int identifier,
316+
@Nonnull final LibraryStringIds nameId) {
311317
super(identifier, nameId);
312318
}
313319
}
314320

315321
private static class PeertubeSortOrderFilterItem extends FilterItem {
316-
PeertubeSortOrderFilterItem(final int identifier, final LibraryStringIds nameId) {
322+
PeertubeSortOrderFilterItem(final int identifier,
323+
@Nonnull final LibraryStringIds nameId) {
317324
super(identifier, nameId);
318325
}
319326
}
320327

321328
private class PeertubeSortFilterItem extends PeertubeFilterItem {
322-
PeertubeSortFilterItem(final int identifier, final LibraryStringIds nameId,
323-
final String query) {
329+
PeertubeSortFilterItem(final int identifier,
330+
@Nonnull final LibraryStringIds nameId,
331+
@Nonnull final String query) {
324332
super(identifier, nameId, query);
325333
}
326334

extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/search/filter/SoundcloudFilters.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import org.schabi.newpipe.extractor.search.filter.FilterItem;
99
import org.schabi.newpipe.extractor.search.filter.LibraryStringIds;
1010

11+
import javax.annotation.Nonnull;
12+
1113
public final class SoundcloudFilters extends BaseSearchFilters {
1214

1315
public static final int ID_CF_MAIN_GRP = 0;
@@ -169,7 +171,7 @@ private static class SoundcloudSortFilterItem extends FilterItem {
169171
private final String query;
170172

171173
SoundcloudSortFilterItem(final int identifier,
172-
final LibraryStringIds nameId,
174+
@Nonnull final LibraryStringIds nameId,
173175
final String query) {
174176
super(identifier, nameId);
175177
this.query = query;
@@ -179,7 +181,8 @@ private static class SoundcloudSortFilterItem extends FilterItem {
179181
private static final class SoundcloudContentFilterItem extends FilterItem {
180182
private final String urlEndpoint;
181183

182-
private SoundcloudContentFilterItem(final int identifier, final LibraryStringIds nameId,
184+
private SoundcloudContentFilterItem(final int identifier,
185+
@Nonnull final LibraryStringIds nameId,
183186
final String urlEndpoint) {
184187
super(identifier, nameId);
185188
this.urlEndpoint = urlEndpoint;

0 commit comments

Comments
 (0)