All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.digitalcollections.model.identifiable.resource.VideoFileResource Maven / Gradle / Ivy

package de.digitalcollections.model.identifiable.resource;

import de.digitalcollections.model.file.MimeType;
import lombok.experimental.SuperBuilder;

/** A video file resource. Mimetype starts with "video/". */
@SuperBuilder(buildMethodName = "prebuild")
public class VideoFileResource extends FileResource {

  private int duration;

  public VideoFileResource() {
    super();
  }

  /**
   * @return duration in seconds
   */
  public int getDuration() {
    return duration;
  }

  @Override
  protected void init() {
    super.init();
    this.fileResourceType = FileResourceType.VIDEO;
    if (getMimeType() == null) {
      this.setMimeType(MimeType.MIME_VIDEO);
    }
  }

  /**
   * @param duration duration in seconds
   */
  public void setDuration(int duration) {
    this.duration = duration;
  }

  public abstract static class VideoFileResourceBuilder<
          C extends VideoFileResource, B extends VideoFileResourceBuilder>
      extends FileResourceBuilder {

    @Override
    public C build() {
      C c = prebuild();
      c.init();
      setInternalReferences(c);
      return c;
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy