package org.nextprot.api.user.domain;
import org.nextprot.api.commons.exception.NPreconditions;
import org.nextprot.api.commons.resource.UserResource;
import java.io.Serializable;
import java.util.Set;
public class UserQuery implements Serializable, UserResource {
private static final long serialVersionUID = 3051410556247218680L;
private long userQueryId;
private String title;
private String description;
private String sparql;
private boolean published;
private String owner;
private long ownerId;
private String publicId;
private Set<String> tags;
public long getUserQueryId() {
return userQueryId;
}
public void setUserQueryId(long userQueryId) {
this.userQueryId = userQueryId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getSparql() {
return sparql;
}
public void setSparql(String sparql) {
this.sparql = sparql;
}
public Boolean getPublished() {
return published;
}
public void setPublished(boolean published) {
this.published = published;
}
@Override
public void setOwnerName(String name) { this.owner = name; }
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public long getOwnerId() { return ownerId; }
public void setOwnerId(long ownerId) { this.ownerId = ownerId; }
public String getPublicId() {
return publicId;
}
public void setPublicId(String publicId) {
this.publicId = publicId;
}
public void checkValidForUpdate() {
NPreconditions.checkNotNull(sparql, "The sparql should not be null");
NPreconditions.checkNotNull(title, "The title should not be null");
NPreconditions.checkTrue(title.length() >= 3,"The title should be at least 3 characters long");
NPreconditions.checkTrue(userQueryId >= 100000,"The user query id is not valid"); // below this number it is reserved for the nextprot query
}
public Set<String> getTags() {
return tags;
}
public void setTags(Set<String> tags) {
this.tags = tags;
}
@Override
public String getOwnerName() {
return this.getOwner();
}
}