All Downloads are FREE. Search and download functionalities are using the official Maven repository.

edu.stanford.protege.webprotege.sharing.ProjectSharingSettings Maven / Gradle / Ivy

The newest version!
package edu.stanford.protege.webprotege.sharing;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Objects;
import edu.stanford.protege.webprotege.common.ProjectId;

import javax.annotation.Nullable;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

import static com.google.common.base.MoreObjects.toStringHelper;
import static com.google.common.base.Preconditions.checkNotNull;

/**
 * Author: Matthew Horridge
* Stanford University
* Bio-Medical Informatics Research Group
* Date: 27/02/2012 */ public class ProjectSharingSettings implements Serializable { private final ProjectId projectId; private final List sharingSettings = new ArrayList<>(); @Nullable private SharingPermission linkSharingPermission = null; @JsonCreator public ProjectSharingSettings(@JsonProperty("projectId") ProjectId projectId, @JsonProperty("linkSharingPermission") Optional linkSharingPermission, @JsonProperty("sharingSettings") List sharingSettings) { this.projectId = checkNotNull(projectId); this.sharingSettings.addAll(checkNotNull(sharingSettings)); this.linkSharingPermission = checkNotNull(linkSharingPermission).orElse(null); } public ProjectId getProjectId() { return projectId; } public List getSharingSettings() { return new ArrayList<>(sharingSettings); } public Optional getLinkSharingPermission() { return Optional.ofNullable(linkSharingPermission); } @Override public int hashCode() { return Objects.hashCode(projectId, linkSharingPermission, sharingSettings); } @Override public boolean equals(Object obj) { if(obj == this) { return true; } if(!(obj instanceof ProjectSharingSettings)) { return false; } ProjectSharingSettings other = (ProjectSharingSettings) obj; return other.projectId.equals(this.projectId) && Objects.equal(this.linkSharingPermission, other.linkSharingPermission) && other.sharingSettings.equals(this.sharingSettings); } @Override public String toString() { return toStringHelper("ProjectSharingSettings") .addValue(projectId) .addValue(sharingSettings) .toString(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy