/* * Copyright (C) 2009 eXo Platform SAS. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.exoplatform.services.jcr.ext.hierarchy.impl; import org.exoplatform.services.jcr.access.PermissionType; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by The eXo Platform SAS Author : Dang Van Minh minh.dang@exoplatform.com Nov 15, 2007 * 2:06:42 PM */ public class HierarchyConfig { private String repository; private List<String> workspaces = new ArrayList<String>(5); private List<JcrPath> jcrPaths = new ArrayList<JcrPath>(5); public String getRepository() { return repository; } public void setRepository(String rp) { repository = rp; } public List<JcrPath> getJcrPaths() { return jcrPaths; } public void setJcrPaths(List<JcrPath> s) { this.jcrPaths = s; } public List<String> getWorkspaces() { return this.workspaces; } public void setWorksapces(List<String> list) { this.workspaces = list; } static public class JcrPath { private String alias; private String path; private String nodeType; private List<String> mixinTypes = new ArrayList<String>(); private List<Permission> permissions = new ArrayList<Permission>(4); public String getAlias() { return alias; } public void setAlias(String alias) { this.alias = alias; } public String getPath() { return path; } public void setPath(String path) { this.path = path; } public List<Permission> getPermissions() { return this.permissions; } public Map<String, String[]> getPermissions(String identityToAdd) { Map<String, String[]> permissionsMap = new HashMap<String, String[]>(); if (identityToAdd != null && !identityToAdd.isEmpty()) { permissionsMap.put(identityToAdd, PermissionType.ALL); } for (Permission permission : permissions) { List<String> lPermissions = new ArrayList<String>(4); if ("true".equalsIgnoreCase(permission.getRead())) lPermissions.add(PermissionType.READ); if ("true".equalsIgnoreCase(permission.getAddNode())) lPermissions.add(PermissionType.ADD_NODE); if ("true".equalsIgnoreCase(permission.getSetProperty())) lPermissions.add(PermissionType.SET_PROPERTY); if ("true".equalsIgnoreCase(permission.getRemove())) lPermissions.add(PermissionType.REMOVE); permissionsMap.put(permission.getIdentity(), (String[])lPermissions.toArray(new String[lPermissions.size()])); } return permissionsMap; } public void setPermissions(List<Permission> list) { this.permissions = list; } public String getNodeType() { return this.nodeType; } public void setNodeType(String nodetype) { this.nodeType = nodetype; } public List<String> getMixinTypes() { return mixinTypes; } public void setMixinTypes(List<String> mixinTypes) { this.mixinTypes = mixinTypes; } } static public class Permission { private String identity; private String read; private String addNode; private String setProperty; private String remove; public String getIdentity() { return identity; } public void setIdentity(String identity) { this.identity = identity; } public String getAddNode() { return addNode; } public void setAddNode(String addNode) { this.addNode = addNode; } public String getRead() { return read; } public void setRead(String read) { this.read = read; } public String getRemove() { return remove; } public void setRemove(String remove) { this.remove = remove; } public String getSetProperty() { return setProperty; } public void setSetProperty(String setProperty) { this.setProperty = setProperty; } } }