wisemapping-open-source/wise-webapp/src/main/java/com/wisemapping/rest/model/RestMindmap.java

200 lines
5.3 KiB
Java
Raw Normal View History

2012-10-05 01:48:01 +02:00
/*
* Copyright [2012] [wisemapping]
*
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
* It is basically the Apache License, Version 2.0 (the "License") plus the
* "powered by wisemapping" text requirement on every single page;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the license at
*
* http://www.wisemapping.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.wisemapping.rest.model;
2012-06-10 03:55:55 +02:00
import com.wisemapping.exceptions.WiseMappingException;
import com.wisemapping.model.*;
2012-09-15 16:35:53 +02:00
import com.wisemapping.util.TimeUtils;
import org.codehaus.jackson.annotate.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.xml.bind.annotation.*;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
@XmlRootElement(name = "map")
@XmlAccessorType(XmlAccessType.PROPERTY)
@JsonAutoDetect(
fieldVisibility = JsonAutoDetect.Visibility.NONE,
setterVisibility = JsonAutoDetect.Visibility.PUBLIC_ONLY,
isGetterVisibility = JsonAutoDetect.Visibility.NONE,
getterVisibility = JsonAutoDetect.Visibility.PUBLIC_ONLY
)
@JsonIgnoreProperties(ignoreUnknown = true)
public class RestMindmap {
@JsonIgnore
private Collaborator collaborator;
@JsonIgnore
private Mindmap mindmap;
2012-09-15 16:35:53 +02:00
@Nullable
private String properties;
public RestMindmap() throws WiseMappingException {
this(new Mindmap(), null);
}
public RestMindmap(@NotNull Mindmap mindmap, @Nullable Collaborator collaborator) throws WiseMappingException {
this.mindmap = mindmap;
this.collaborator = collaborator;
if (collaborator != null) {
2012-09-15 16:35:53 +02:00
final CollaborationProperties collaborationProperties = mindmap.findCollaborationProperties(collaborator, false);
if (collaborationProperties != null) {
this.properties = collaborationProperties.getMindmapProperties();
}
}
}
public String getCreationTime() {
final Calendar creationTime = mindmap.getCreationTime();
String result = null;
if (creationTime != null) {
2012-09-15 16:35:53 +02:00
result = TimeUtils.toISO8601(creationTime.getTime());
}
return result;
}
public String getDescription() {
return mindmap.getDescription();
}
public String getTags() {
return mindmap.getTags();
}
public String getTitle() {
return mindmap.getTitle();
}
public int getId() {
return mindmap.getId();
}
public String getCreator() {
2012-06-12 16:23:47 +02:00
return mindmap.getCreator().getEmail();
}
2012-09-15 16:35:53 +02:00
public RestCollaborator getLastModifierUser() {
final User lastEditor = mindmap.getLastEditor();
RestCollaborator result = null;
if (lastEditor != null && mindmap.hasPermissions(collaborator, CollaborationRole.EDITOR)) {
result = new RestCollaborator(lastEditor);
}
return result;
}
public String getLastModificationTime() {
final Calendar date = mindmap.getLastModificationTime();
2012-05-24 02:54:03 +02:00
String result = null;
if (date != null) {
2012-09-15 16:35:53 +02:00
result = TimeUtils.toISO8601(date.getTime());
2012-05-24 02:54:03 +02:00
}
return result;
}
public boolean isPublic() {
return mindmap.isPublic();
}
2012-04-06 22:05:42 +02:00
public void setPublic(boolean value) {
// return mindmap.isPublic();
2012-04-06 22:05:42 +02:00
}
public String getXml() throws IOException {
return mindmap.getXmlStr();
}
public void setXml(@Nullable String xml) throws IOException {
if (xml != null)
mindmap.setXmlStr(xml);
}
public void setId(int id) {
mindmap.setId(id);
}
public void setTitle(String title) {
mindmap.setTitle(title);
}
public void setTags(String tags) {
mindmap.setTags(tags);
}
public void setDescription(String description) {
mindmap.setDescription(description);
}
public void setOwner(String owner) {
}
public String getOwner() {
2012-06-12 16:23:47 +02:00
final User owner = mindmap.getCreator();
2012-06-10 03:49:54 +02:00
return owner != null ? owner.getEmail() : null;
}
public void setCreator(String creatorUser) {
}
public void setProperties(@Nullable String properties) {
this.properties = properties;
}
public void setLastModificationTime(final String value) {
}
public void setLastModifierUser(String lastModifierUser) {
}
2012-09-15 16:35:53 +02:00
@Nullable
public String getProperties() {
return properties;
}
public boolean getStarred() {
boolean result = false;
if (collaborator != null) {
result = mindmap.isStarred(collaborator);
}
return result;
}
2012-06-10 03:55:55 +02:00
public void setStarred(boolean value) throws WiseMappingException {
2012-06-06 05:48:46 +02:00
if (collaborator != null) {
mindmap.setStarred(collaborator, value);
}
}
@JsonIgnore
public Mindmap getDelegated() {
return this.mindmap;
}
}