// Path: src/main/java/se/bjurr/gitchangelog/internal/util/Preconditions.java
// public static boolean isNullOrEmpty(final String it) {
//   return it == null || it.isEmpty();
// }
// 
// Path: src/main/java/se/bjurr/gitchangelog/api/model/interfaces/IAuthors.java
// public interface IAuthors {
//   List<Author> getAuthors();
// }
// 
// Path: src/main/java/se/bjurr/gitchangelog/api/model/interfaces/ICommits.java
// public interface ICommits {
//   List<Commit> getCommits();
// }
// 
// Path: src/main/java/se/bjurr/gitchangelog/api/model/interfaces/IIssues.java
// public interface IIssues {
//   List<Issue> getIssues();
// }


import static se.bjurr.gitchangelog.internal.util.Preconditions.isNullOrEmpty;
import java.io.Serializable;
import java.util.List;
import se.bjurr.gitchangelog.api.model.interfaces.IAuthors;
import se.bjurr.gitchangelog.api.model.interfaces.ICommits;
import se.bjurr.gitchangelog.api.model.interfaces.IIssues;
package se.bjurr.gitchangelog.api.model;



public class Tag implements ICommits, IAuthors, IIssues, Serializable {
  private static final long serialVersionUID = 2140208294219785889L;
  private final String annotation;
  private final List<Author> authors;
  private final List<Commit> commits;
  private final List<Issue> issues;
  private final List<IssueType> issueTypes;
  private final String name;
  private final String tagTime;
  private final Long tagTimeLong;
  private final boolean hasTagTime;

  public Tag(
      final String name,
      final String annotation,
      final List<Commit> commits,
      final List<Author> authors,
      final List<Issue> issues,
      final List<IssueType> issueTypes,
      final String tagTime,
      final Long tagTimeLong) {
    this.commits = commits;
    this.authors = authors;
    this.issues = issues;
    this.name = name;
    this.annotation = annotation;
    this.issueTypes = issueTypes;
    this.tagTime = tagTime;
    this.tagTimeLong = tagTimeLong;
// Path: src/main/java/se/bjurr/gitchangelog/internal/util/Preconditions.java
// public static boolean isNullOrEmpty(final String it) {
//   return it == null || it.isEmpty();
// }
// 
// Path: src/main/java/se/bjurr/gitchangelog/api/model/interfaces/IAuthors.java
// public interface IAuthors {
//   List<Author> getAuthors();
// }
// 
// Path: src/main/java/se/bjurr/gitchangelog/api/model/interfaces/ICommits.java
// public interface ICommits {
//   List<Commit> getCommits();
// }
// 
// Path: src/main/java/se/bjurr/gitchangelog/api/model/interfaces/IIssues.java
// public interface IIssues {
//   List<Issue> getIssues();
// }


// Path: src/main/java/se/bjurr/gitchangelog/api/model/Tag.java
import static se.bjurr.gitchangelog.internal.util.Preconditions.isNullOrEmpty;
import java.io.Serializable;
import java.util.List;
import se.bjurr.gitchangelog.api.model.interfaces.IAuthors;
import se.bjurr.gitchangelog.api.model.interfaces.ICommits;
import se.bjurr.gitchangelog.api.model.interfaces.IIssues;

package se.bjurr.gitchangelog.api.model;



public class Tag implements ICommits, IAuthors, IIssues, Serializable {
  private static final long serialVersionUID = 2140208294219785889L;
  private final String annotation;
  private final List<Author> authors;
  private final List<Commit> commits;
  private final List<Issue> issues;
  private final List<IssueType> issueTypes;
  private final String name;
  private final String tagTime;
  private final Long tagTimeLong;
  private final boolean hasTagTime;

  public Tag(
      final String name,
      final String annotation,
      final List<Commit> commits,
      final List<Author> authors,
      final List<Issue> issues,
      final List<IssueType> issueTypes,
      final String tagTime,
      final Long tagTimeLong) {
    this.commits = commits;
    this.authors = authors;
    this.issues = issues;
    this.name = name;
    this.annotation = annotation;
    this.issueTypes = issueTypes;
    this.tagTime = tagTime;
    this.tagTimeLong = tagTimeLong;
    this.hasTagTime = !isNullOrEmpty(tagTime);