ApplicationInstanceDTO.java
/*
* Copyright (C) 2000 - 2025 Silverpeas
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* As a special exception to the terms and conditions of version 3.0 of
* the GPL, you may redistribute this Program in connection with Free/Libre
* Open Source Software ("FLOSS") applications as described in Silverpeas's
* FLOSS exception. You should have received a copy of the text describing
* the FLOSS exception, and it is also available here:
* "https://www.silverpeas.org/legal/floss_exception.html"
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.silverpeas.mobile.shared.dto.navigation;
import jsinterop.base.JsPropertyMap;
import org.silverpeas.mobile.shared.dto.RightDTO;
import java.io.Serializable;
import java.util.Map;
public class ApplicationInstanceDTO extends SilverpeasObjectDTO implements Serializable {
private String type;
private RightDTO rights;
private boolean commentable;
private boolean notifiable;
private boolean ableToStoreContent;
private boolean workflow;
private String extraId;
private int folderSharing;
private int publicationSharing;
private int fileSharing;
private String introduction;
private Map<String, String> parameters;
private boolean personnal;
public String getType() {
return type;
}
public void setType(final String type) {
this.type = type;
}
public RightDTO getRights() {
return rights;
}
public void setRights(final RightDTO rights) {
this.rights = rights;
}
public boolean getCommentable() {
return commentable;
}
public void setCommentable(final boolean commentable) {
this.commentable = commentable;
}
public boolean getNotifiable() {
return notifiable;
}
public void setNotifiable(final boolean notifiable) {
this.notifiable = notifiable;
}
public boolean getAbleToStoreContent() {
return ableToStoreContent;
}
public void setAbleToStoreContent(final boolean ableToStoreContent) {
this.ableToStoreContent = ableToStoreContent;
}
public boolean getWorkflow() {
return workflow;
}
public void setWorkflow(final boolean workflow) {
this.workflow = workflow;
}
public String getExtraId() {
return extraId;
}
public void setExtraId(final String extraId) {
this.extraId = extraId;
}
public void setFolderSharing(int folderSharing) { this.folderSharing = folderSharing; }
public void setPublicationSharing(int publicationSharing) { this.publicationSharing = publicationSharing; }
public void setFileSharing(int fileSharing) { this.fileSharing = fileSharing; }
public int getFolderSharing() { return folderSharing; }
public int getPublicationSharing() { return publicationSharing; }
public int getFileSharing() { return fileSharing; }
public boolean getPersonnal() {
return personnal;
}
public void setPersonnal(boolean personnal) {
this.personnal = personnal;
}
public void setParameters(Map<String, String> parameters) {
this.parameters = parameters;
}
public Map<String, String> getParameters() {
return parameters;
}
public String getIntroduction() { return introduction; }
public void setIntroduction(String introduction) { this.introduction = introduction; }
public ApplicationInstanceDTO() {
setClassName(ApplicationInstanceDTO.class.getSimpleName());
}
public static ApplicationInstanceDTO fromJSON(JsPropertyMap<Object> json) {
ApplicationInstanceDTO dto = new ApplicationInstanceDTO();
dto.fromSuperJSON(json);
dto.setType(json.get("type") != null ? json.get("type").toString() : "");
dto.setExtraId(json.get("extraId") != null ? json.get("extraId").toString() : "");
dto.setIntroduction(json.get("introduction") != null ? json.get("introduction").toString() : "");
// booleans
dto.setCommentable(json.get("commentable") != null ? Boolean.parseBoolean(json.get("commentable").toString()) : false);
dto.setNotifiable(json.get("notifiable") != null ? Boolean.parseBoolean(json.get("notifiable").toString()) : false);
dto.setAbleToStoreContent(json.get("ableToStoreContent") != null ? Boolean.parseBoolean(json.get("ableToStoreContent").toString()) : false);
dto.setWorkflow(json.get("workflow") != null ? Boolean.parseBoolean(json.get("workflow").toString()) : false);
dto.setPersonnal(json.get("personnal") != null ? Boolean.parseBoolean(json.get("personnal").toString()) : false);
// integers
dto.setFolderSharing(json.get("folderSharing") != null ? ((Number) json.get("folderSharing")).intValue() : 0);
dto.setPublicationSharing(json.get("publicationSharing") != null ? ((Number) json.get("publicationSharing")).intValue() : 0);
dto.setFileSharing(json.get("fileSharing") != null ? ((Number) json.get("fileSharing")).intValue() : 0);
// ===== parameters =====
Object paramsObj = json.get("parameters");
if (paramsObj != null) {
JsPropertyMap<String> paramsMap = (JsPropertyMap<String>) paramsObj;
Map<String, String> values = new java.util.HashMap<>();
String[] keys = getKeys(paramsMap);
for (String key : keys) {
values.put(key, paramsMap.get(key));
}
dto.setParameters(values);
}
// ===== rights =====
dto.setRights(RightDTO.fromJSON((JsPropertyMap<Object>) json.get("rights")));
return dto;
}
private static native String[] getKeys(JsPropertyMap<?> map) /*-{
return Object.keys(map);
}-*/;
}