001/*
002 * (C) Copyright 2006-2008 Nuxeo SA (http://nuxeo.com/) and others.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 *     http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 *
016 * Contributors:
017 *     <a href="mailto:at@nuxeo.com">Anahide Tchertchian</a>
018 *
019 * $Id:  $
020 */
021
022package org.nuxeo.ecm.directory.api.ui;
023
024import java.util.ArrayList;
025import java.util.List;
026
027import org.nuxeo.common.xmap.annotation.XNode;
028import org.nuxeo.common.xmap.annotation.XNodeList;
029import org.nuxeo.common.xmap.annotation.XObject;
030import org.nuxeo.ecm.directory.DirectoryException;
031
032/**
033 * Directory ui descriptor
034 *
035 * @author Anahide Tchertchian
036 */
037@XObject("directory")
038public class DirectoryUIDescriptor implements DirectoryUI {
039
040    private static final long serialVersionUID = 1L;
041
042    @XNode("@name")
043    String name;
044
045    @XNode("@view")
046    String view;
047
048    @XNode("@layout")
049    String layout;
050
051    @XNode("@sortField")
052    String sortField;
053
054    @XNode("@enabled")
055    Boolean enabled;
056
057    @XNode("@readOnly")
058    Boolean readOnly;
059
060    @XNodeList(value = "deleteConstraint", type = ArrayList.class, componentType = DirectoryUIDeleteConstraintDescriptor.class)
061    List<DirectoryUIDeleteConstraintDescriptor> deleteConstraints;
062
063    public String getName() {
064        return name;
065    }
066
067    public String getLayout() {
068        return layout;
069    }
070
071    public String getView() {
072        return view;
073    }
074
075    public String getSortField() {
076        return sortField;
077    }
078
079    public Boolean isEnabled() {
080        return enabled;
081    }
082
083    public Boolean isReadOnly() {
084        return readOnly;
085    }
086
087    public List<DirectoryUIDeleteConstraint> getDeleteConstraints() throws DirectoryException {
088        List<DirectoryUIDeleteConstraint> res = new ArrayList<DirectoryUIDeleteConstraint>();
089        if (deleteConstraints != null) {
090            for (DirectoryUIDeleteConstraintDescriptor deleteConstraintDescriptor : deleteConstraints) {
091                res.add(deleteConstraintDescriptor.getDeleteConstraint());
092            }
093        }
094        return res;
095    }
096
097}