// Path: src/main/java/se/bjurr/gitchangelog/internal/util/Preconditions.java
// public static void checkArgument(final boolean b, final String string) {
//   if (!b) {
//     throw new IllegalStateException(string);
//   }
// }
// 
// Path: src/main/java/se/bjurr/gitchangelog/internal/util/Preconditions.java
// public static <T> T checkNotNull(final T it, final String string) {
//   if (it == null) {
//     throw new IllegalStateException(string);
//   }
//   return it;
// }
// 
// Path: src/main/java/se/bjurr/gitchangelog/internal/model/interfaces/IGitCommitReferer.java
// public interface IGitCommitReferer {
//   GitCommit getGitCommit();
// 
//   String getName();
// }


import static se.bjurr.gitchangelog.internal.util.Preconditions.checkArgument;
import static se.bjurr.gitchangelog.internal.util.Preconditions.checkNotNull;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import se.bjurr.gitchangelog.internal.model.interfaces.IGitCommitReferer;
package se.bjurr.gitchangelog.internal.git.model;



public class GitTag implements IGitCommitReferer {

  private final String annotation;
  private final List<GitCommit> gitCommits;
  private final String name;
  private final Date tagTime;

  public GitTag(
      final String name,
      final String annotation,
      final List<GitCommit> gitCommits,
      final Date tagTime) {
    checkArgument(!gitCommits.isEmpty(), "No commits in " + name);
// Path: src/main/java/se/bjurr/gitchangelog/internal/util/Preconditions.java
// public static void checkArgument(final boolean b, final String string) {
//   if (!b) {
//     throw new IllegalStateException(string);
//   }
// }
// 
// Path: src/main/java/se/bjurr/gitchangelog/internal/util/Preconditions.java
// public static <T> T checkNotNull(final T it, final String string) {
//   if (it == null) {
//     throw new IllegalStateException(string);
//   }
//   return it;
// }
// 
// Path: src/main/java/se/bjurr/gitchangelog/internal/model/interfaces/IGitCommitReferer.java
// public interface IGitCommitReferer {
//   GitCommit getGitCommit();
// 
//   String getName();
// }


// Path: src/main/java/se/bjurr/gitchangelog/internal/git/model/GitTag.java
import static se.bjurr.gitchangelog.internal.util.Preconditions.checkArgument;
import static se.bjurr.gitchangelog.internal.util.Preconditions.checkNotNull;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import se.bjurr.gitchangelog.internal.model.interfaces.IGitCommitReferer;

package se.bjurr.gitchangelog.internal.git.model;



public class GitTag implements IGitCommitReferer {

  private final String annotation;
  private final List<GitCommit> gitCommits;
  private final String name;
  private final Date tagTime;

  public GitTag(
      final String name,
      final String annotation,
      final List<GitCommit> gitCommits,
      final Date tagTime) {
    checkArgument(!gitCommits.isEmpty(), "No commits in " + name);
    this.name = checkNotNull(name, "name");