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