de.chaosfisch.google.youtube.upload.Upload.java Source code

Java tutorial

Introduction

Here is the source code for de.chaosfisch.google.youtube.upload.Upload.java

Source

/*
 * Copyright (c) 2014 Dennis Fischer.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Public License v3.0+
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/gpl.html
 *
 * Contributors: Dennis Fischer
 */

/**
 * This class is generated by jOOQ
 */
package de.chaosfisch.google.youtube.upload;

import de.chaosfisch.google.account.Account;
import de.chaosfisch.google.youtube.playlist.Playlist;
import de.chaosfisch.google.youtube.upload.metadata.Metadata;
import de.chaosfisch.google.youtube.upload.metadata.Monetization;
import de.chaosfisch.google.youtube.upload.metadata.Social;
import de.chaosfisch.google.youtube.upload.metadata.permissions.Permissions;
import org.joda.time.DateTime;
import org.joda.time.Duration;
import org.joda.time.Instant;

import java.io.File;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

public class Upload {

    @Deprecated
    private transient Calendar dateOfStart;
    @Deprecated
    private transient Calendar dateOfRelease;

    private final CopyOnWriteArrayList<Playlist> playlists = new CopyOnWriteArrayList<>();
    private Social social = new Social();
    private Status status = new Status();
    private Monetization monetization = new Monetization();
    private Permissions permissions = new Permissions();
    private Metadata metadata = new Metadata();
    private String mimetype = "application/octet-stream";

    private String id;
    private File file;
    private String uploadurl;
    private DateTime dateTimeOfStart;
    private int order;
    private DateTime dateTimeOfRelease;
    private boolean pauseOnFinish;
    private String videoid;
    private File enddir;
    private File thumbnail;

    private Account account;

    public int getOrder() {
        return order;
    }

    public void setOrder(final int order) {
        this.order = order;
    }

    public interface Validation {
        int MAX_THUMBNAIL_SIZE = 2097152;
        int MAX_TITLE_SIZE = 100;
        int MAX_DESCRIPTION_SIZE = 5000;

        String ACCOUNT = "accountNull";
        String FILE = "fileNullNotExisting";
        String ENDDIR = "enddirNotExisting";
        String THUMBNAIL = "thumbnailNotExsiting";
        String THUMBNAIL_SIZE = "thumbnailSize";
        String TITLE = "titleNull";
        String TITLE_SIZE = "titleSize";
        String TITLE_CHARACTERS = "titleCharacters";
        String CATEGORY = "categoryNull";
        String DESCRIPTION_SIZE = "descriptionNull";
        String DESCRIPTION_CHARACTERS = "descriptionCharacters";
        String KEYWORD = "keywordIllegal";
    }

    public Upload() {
    }

    public Upload(final Account account, final File file) {
        if (null == account) {
            throw new IllegalArgumentException(Validation.ACCOUNT);
        }
        this.account = account;
        setFile(file);
    }

    public String getId() {
        return id;
    }

    public void setId(final String id) {
        this.id = id;
    }

    public File getFile() {
        return file;
    }

    public void setFile(final File file) {
        if (null == file || !file.exists()) {
            throw new IllegalArgumentException(Validation.FILE);
        }
        this.file = file;
    }

    public String getMimetype() {
        return mimetype;
    }

    public void setMimetype(final String mimetype) {
        this.mimetype = mimetype;
    }

    public String getUploadurl() {
        return uploadurl;
    }

    public void setUploadurl(final String uploadurl) {
        this.uploadurl = uploadurl;
    }

    public DateTime getDateTimeOfStart() {
        return dateTimeOfStart;
    }

    public void setDateTimeOfStart(final DateTime dateTimeOfStart) {
        if (null == dateTimeOfStart || dateTimeOfStart.isBefore(Instant.now().minus(Duration.standardSeconds(5)))) {
            this.dateTimeOfStart = null;
        } else {
            this.dateTimeOfStart = dateTimeOfStart;
        }
    }

    public DateTime getDateTimeOfRelease() {
        return dateTimeOfRelease;
    }

    @SuppressWarnings("MagicNumber")
    public void setDateTimeOfRelease(final DateTime dateTimeOfRelease) {
        if (null == dateTimeOfRelease || dateTimeOfRelease.isBeforeNow()) {
            this.dateTimeOfRelease = null;
        } else {
            final int mod = dateTimeOfRelease.getMinuteOfHour() % 30;
            this.dateTimeOfRelease = dateTimeOfRelease.plusMinutes(16 > mod ? -mod : 30 - mod).minuteOfHour()
                    .roundFloorCopy();
        }
    }

    public boolean isPauseOnFinish() {
        return pauseOnFinish;
    }

    public void setPauseOnFinish(final boolean pauseOnFinish) {
        this.pauseOnFinish = pauseOnFinish;
    }

    public String getVideoid() {
        return videoid;
    }

    public void setVideoid(final String videoid) {
        this.videoid = videoid;
    }

    public File getEnddir() {
        return enddir;
    }

    public void setEnddir(final File enddir) {
        if (null != enddir && !enddir.exists()) {
            throw new IllegalArgumentException(Validation.ENDDIR);
        }
        this.enddir = enddir;
    }

    public File getThumbnail() {
        return thumbnail;
    }

    public void setThumbnail(final File thumbnail) {
        if (null != thumbnail) {
            if (!thumbnail.exists()) {
                throw new IllegalArgumentException(Validation.THUMBNAIL);
            } else if (Validation.MAX_THUMBNAIL_SIZE < thumbnail.length()) {
                throw new IllegalArgumentException(Validation.THUMBNAIL_SIZE);
            }
        }
        this.thumbnail = thumbnail;
    }

    public Social getSocial() {
        return social;
    }

    public void setSocial(final Social social) {
        this.social = social;
    }

    public Status getStatus() {
        return status;
    }

    public void setStatus(final Status status) {
        this.status = status;
    }

    public Monetization getMonetization() {
        return monetization;
    }

    public void setMonetization(final Monetization monetization) {
        this.monetization = monetization;
    }

    public Permissions getPermissions() {
        return permissions;
    }

    public void setPermissions(final Permissions permissions) {
        this.permissions = permissions;
    }

    public Metadata getMetadata() {
        return metadata;
    }

    public void setMetadata(final Metadata metadata) {
        this.metadata = metadata;
    }

    public Account getAccount() {
        return account;
    }

    public void setAccount(final Account account) {
        this.account = account;
    }

    public List<Playlist> getPlaylists() {
        return new ArrayList<>(playlists);
    }

    public void setPlaylists(final List<Playlist> playlists) {
        this.playlists.clear();
        this.playlists.addAll(playlists);
    }

    @Override
    public boolean equals(final Object obj) {
        if (this == obj) {
            return true;
        }
        if (!(obj instanceof Upload)) {
            return false;
        }

        final Upload upload = (Upload) obj;

        return !(null != id ? !id.equals(upload.id) : null != upload.id);
    }

    @Override
    public int hashCode() {
        return null != id ? id.hashCode() : 0;
    }
}