Added validation for ``MediaFormat``s

This commit is contained in:
litetex 2022-06-13 22:15:16 +02:00
parent cf77bf5974
commit 862ed8762d
5 changed files with 31 additions and 15 deletions

View File

@ -2,6 +2,8 @@ package org.schabi.newpipe.extractor.streamdata.format;
import java.util.Objects;
import javax.annotation.Nonnull;
public abstract class AbstractMediaFormat implements MediaFormat {
private final int id;
private final String name;
@ -10,14 +12,14 @@ public abstract class AbstractMediaFormat implements MediaFormat {
protected AbstractMediaFormat(
final int id,
final String name,
final String suffix,
final String mimeType
@Nonnull final String name,
@Nonnull final String suffix,
@Nonnull final String mimeType
) {
this.id = id;
this.name = name;
this.suffix = suffix;
this.mimeType = mimeType;
this.name = Objects.requireNonNull(name);
this.suffix = Objects.requireNonNull(suffix);
this.mimeType = Objects.requireNonNull(mimeType);
}
@Override
@ -25,16 +27,19 @@ public abstract class AbstractMediaFormat implements MediaFormat {
return id;
}
@Nonnull
@Override
public String name() {
return name;
}
@Nonnull
@Override
public String suffix() {
return suffix;
}
@Nonnull
@Override
public String mimeType() {
return mimeType;

View File

@ -1,11 +1,13 @@
package org.schabi.newpipe.extractor.streamdata.format;
import javax.annotation.Nonnull;
public class AudioMediaFormat extends AbstractMediaFormat {
public AudioMediaFormat(
final int id,
final String name,
final String suffix,
final String mimeType
@Nonnull final String name,
@Nonnull final String suffix,
@Nonnull final String mimeType
) {
super(id, name, suffix, mimeType);
}

View File

@ -1,12 +1,17 @@
package org.schabi.newpipe.extractor.streamdata.format;
import javax.annotation.Nonnull;
public interface MediaFormat {
int id();
@Nonnull
String name();
@Nonnull
String suffix();
@Nonnull
String mimeType();
}

View File

@ -1,11 +1,13 @@
package org.schabi.newpipe.extractor.streamdata.format;
import javax.annotation.Nonnull;
public class SubtitleMediaFormat extends AbstractMediaFormat {
public SubtitleMediaFormat(
final int id,
final String name,
final String suffix,
final String mimeType
@Nonnull final String name,
@Nonnull final String suffix,
@Nonnull final String mimeType
) {
super(id, name, suffix, mimeType);
}

View File

@ -1,11 +1,13 @@
package org.schabi.newpipe.extractor.streamdata.format;
import javax.annotation.Nonnull;
public class VideoAudioMediaFormat extends AbstractMediaFormat {
public VideoAudioMediaFormat(
final int id,
final String name,
final String suffix,
final String mimeType
@Nonnull final String name,
@Nonnull final String suffix,
@Nonnull final String mimeType
) {
super(id, name, suffix, mimeType);
}