// Path: api/src/main/java/com/jfrog/bintray/client/api/details/SubjectDetails.java
// @JsonIgnoreProperties(ignoreUnknown = true)
// public class SubjectDetails {
// 
//     @JsonProperty("name")
//     String name;
//     @JsonProperty("full_name")
//     String fullName;
//     @JsonProperty("gravatar_id")
//     String gravatarId;
//     @JsonProperty("repos")
//     List<String> repos;
//     @JsonProperty("organizations")
//     List<String> organizations;
//     @JsonProperty("followers_count")
//     Integer followersCount;
//     @JsonProperty("registered")
//     DateTime registered;
//     @JsonProperty("quota_used_bytes")
//     Long quotaUsedBytes;
// 
//     //All other props that don't have specific fields
//     private Map<String, Object> other = new HashMap<>();
// 
//     @JsonAnySetter
//     public void set(String name, Object value) {
//         other.put(name, value);
//     }
// 
//     @JsonAnyGetter
//     public Map<String, Object> other() {
//         return other;
//     }
// 
//     public static ObjectMapper getObjectMapper() {
//         return ObjectMapperHelper.get();
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getFullName() {
//         return fullName;
//     }
// 
//     public void setFullName(String fullName) {
//         this.fullName = fullName;
//     }
// 
//     public String getGravatarId() {
//         return gravatarId;
//     }
// 
//     public void setGravatarId(String gravatarId) {
//         this.gravatarId = gravatarId;
//     }
// 
//     public List<String> getRepos() {
//         return repos;
//     }
// 
//     public void setRepos(List<String> repos) {
//         this.repos = repos;
//     }
// 
//     public List<String> getOrganizations() {
//         return organizations;
//     }
// 
//     public void setOrganizations(List<String> organizations) {
//         this.organizations = organizations;
//     }
// 
//     public Integer getFollowersCount() {
//         return followersCount;
//     }
// 
//     public void setFollowersCount(Integer followersCount) {
//         this.followersCount = followersCount;
//     }
// 
//     public DateTime getRegistered() {
//         return registered;
//     }
// 
//     public void setRegistered(DateTime registered) {
//         this.registered = registered;
//     }
// 
//     public Long getQuotaUsedBytes() {
//         return quotaUsedBytes;
//     }
// 
//     public void setQuotaUsedBytes(Long quotaUsedBytes) {
//         this.quotaUsedBytes = quotaUsedBytes;
//     }
// }
// 
// Path: api/src/main/java/com/jfrog/bintray/client/api/model/Subject.java
// public interface Subject {
// 
//     String getName();
// 
//     String getFullName();
// 
//     String getGravatarId();
// 
//     Collection<String> getRepositories();
// 
//     Collection<String> getOrganizations();
// 
//     Integer getFollowersCount();
// 
//     DateTime getRegistered();
// 
//     Long getQuotaUsedBytes();
// 
//     Object getFieldByKey(String key);
// }


import com.jfrog.bintray.client.api.details.SubjectDetails;
import com.jfrog.bintray.client.api.model.Subject;
import org.joda.time.DateTime;
import java.util.Collection;
import java.util.Map;
package com.jfrog.bintray.client.impl.model;



/**
 * @author Noam Y. Tenne
 */
public class SubjectImpl implements Subject {

    private String name;
    private String fullName;
    private String gravatarId;
    private Collection<String> repositories;
    private Collection<String> organizations;
    private Integer followersCount;
    private DateTime registered;
    private Long quotaUsedBytes;
    private Map<String, Object> other;

    public SubjectImpl() {
    }

// Path: api/src/main/java/com/jfrog/bintray/client/api/details/SubjectDetails.java
// @JsonIgnoreProperties(ignoreUnknown = true)
// public class SubjectDetails {
// 
//     @JsonProperty("name")
//     String name;
//     @JsonProperty("full_name")
//     String fullName;
//     @JsonProperty("gravatar_id")
//     String gravatarId;
//     @JsonProperty("repos")
//     List<String> repos;
//     @JsonProperty("organizations")
//     List<String> organizations;
//     @JsonProperty("followers_count")
//     Integer followersCount;
//     @JsonProperty("registered")
//     DateTime registered;
//     @JsonProperty("quota_used_bytes")
//     Long quotaUsedBytes;
// 
//     //All other props that don't have specific fields
//     private Map<String, Object> other = new HashMap<>();
// 
//     @JsonAnySetter
//     public void set(String name, Object value) {
//         other.put(name, value);
//     }
// 
//     @JsonAnyGetter
//     public Map<String, Object> other() {
//         return other;
//     }
// 
//     public static ObjectMapper getObjectMapper() {
//         return ObjectMapperHelper.get();
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getFullName() {
//         return fullName;
//     }
// 
//     public void setFullName(String fullName) {
//         this.fullName = fullName;
//     }
// 
//     public String getGravatarId() {
//         return gravatarId;
//     }
// 
//     public void setGravatarId(String gravatarId) {
//         this.gravatarId = gravatarId;
//     }
// 
//     public List<String> getRepos() {
//         return repos;
//     }
// 
//     public void setRepos(List<String> repos) {
//         this.repos = repos;
//     }
// 
//     public List<String> getOrganizations() {
//         return organizations;
//     }
// 
//     public void setOrganizations(List<String> organizations) {
//         this.organizations = organizations;
//     }
// 
//     public Integer getFollowersCount() {
//         return followersCount;
//     }
// 
//     public void setFollowersCount(Integer followersCount) {
//         this.followersCount = followersCount;
//     }
// 
//     public DateTime getRegistered() {
//         return registered;
//     }
// 
//     public void setRegistered(DateTime registered) {
//         this.registered = registered;
//     }
// 
//     public Long getQuotaUsedBytes() {
//         return quotaUsedBytes;
//     }
// 
//     public void setQuotaUsedBytes(Long quotaUsedBytes) {
//         this.quotaUsedBytes = quotaUsedBytes;
//     }
// }
// 
// Path: api/src/main/java/com/jfrog/bintray/client/api/model/Subject.java
// public interface Subject {
// 
//     String getName();
// 
//     String getFullName();
// 
//     String getGravatarId();
// 
//     Collection<String> getRepositories();
// 
//     Collection<String> getOrganizations();
// 
//     Integer getFollowersCount();
// 
//     DateTime getRegistered();
// 
//     Long getQuotaUsedBytes();
// 
//     Object getFieldByKey(String key);
// }


// Path: impl/src/main/java/com/jfrog/bintray/client/impl/model/SubjectImpl.java
import com.jfrog.bintray.client.api.details.SubjectDetails;
import com.jfrog.bintray.client.api.model.Subject;
import org.joda.time.DateTime;
import java.util.Collection;
import java.util.Map;

package com.jfrog.bintray.client.impl.model;



/**
 * @author Noam Y. Tenne
 */
public class SubjectImpl implements Subject {

    private String name;
    private String fullName;
    private String gravatarId;
    private Collection<String> repositories;
    private Collection<String> organizations;
    private Integer followersCount;
    private DateTime registered;
    private Long quotaUsedBytes;
    private Map<String, Object> other;

    public SubjectImpl() {
    }

    public SubjectImpl(SubjectDetails subjectDetails) {