// Path: src/main/java/wdawson/samples/dropwizard/util/jwt/exception/JwtClaimException.java
// public class JwtClaimException extends RuntimeException {
// 
//     public JwtClaimException(String s) {
//         super(s);
//     }
// 
// }


import com.google.common.collect.Sets;
import org.joda.time.DateTimeConstants;
import wdawson.samples.dropwizard.util.jwt.exception.JwtClaimException;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
            return this;
        }

        public JwtClaimsBuilder addAudience(String audience) {
            addClaim(AUDIENCE, audience);
            return this;
        }

        public JwtClaimsBuilder addIssuer(String issuer) {
            addClaim(ISSUER, issuer);
            return this;
        }

        public JwtClaimsBuilder addExpirationTime(Date expirationTime) {
            addDateClaim(EXPIRATION_TIME, expirationTime);
            return this;
        }

        public JwtClaimsBuilder addIssuedAt(Date issuedAt) {
            addDateClaim(ISSUED_AT, issuedAt);
            return this;
        }

        public JwtClaimsBuilder addNotBefore(Date notBefore) {
            addDateClaim(NOT_BEFORE, notBefore);
            return this;
        }

        public JwtClaimsBuilder addCustomClaim(String claim, Object value) {
            if (JwtClaims.RESERVED_CLAIMS.contains(claim)) {
// Path: src/main/java/wdawson/samples/dropwizard/util/jwt/exception/JwtClaimException.java
// public class JwtClaimException extends RuntimeException {
// 
//     public JwtClaimException(String s) {
//         super(s);
//     }
// 
// }


// Path: src/main/java/wdawson/samples/dropwizard/util/jwt/dto/JwtClaims.java
import com.google.common.collect.Sets;
import org.joda.time.DateTimeConstants;
import wdawson.samples.dropwizard.util.jwt.exception.JwtClaimException;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

            return this;
        }

        public JwtClaimsBuilder addAudience(String audience) {
            addClaim(AUDIENCE, audience);
            return this;
        }

        public JwtClaimsBuilder addIssuer(String issuer) {
            addClaim(ISSUER, issuer);
            return this;
        }

        public JwtClaimsBuilder addExpirationTime(Date expirationTime) {
            addDateClaim(EXPIRATION_TIME, expirationTime);
            return this;
        }

        public JwtClaimsBuilder addIssuedAt(Date issuedAt) {
            addDateClaim(ISSUED_AT, issuedAt);
            return this;
        }

        public JwtClaimsBuilder addNotBefore(Date notBefore) {
            addDateClaim(NOT_BEFORE, notBefore);
            return this;
        }

        public JwtClaimsBuilder addCustomClaim(String claim, Object value) {
            if (JwtClaims.RESERVED_CLAIMS.contains(claim)) {
                throw new JwtClaimException(String.format("Claim %s is a reserved claim", claim));