Package org.jasig.portal.io.xml

Source Code of org.jasig.portal.io.xml.PortalDataHandlerServiceUtils

/**
* Licensed to Jasig under one or more contributor license
* agreements. See the NOTICE file distributed with this work
* for additional information regarding copyright ownership.
* Jasig licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a
* copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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 org.jasig.portal.io.xml;

import java.util.EnumSet;
import java.util.Formatter;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

import org.jasig.portal.logging.AppendableLogger;
import org.jasig.portal.logging.LogLevel;
import org.jasig.portal.utils.TableFormatter;
import org.jasig.portal.utils.TableFormatter.TableEntry;
import org.slf4j.Logger;

/**
* @author Eric Dalquist
* @version $Revision$
*/
public final class PortalDataHandlerServiceUtils {
    private PortalDataHandlerServiceUtils() {
    }
   
    private enum Operations {
        EXPORT,
        DELETE
    }
   
    public static void format(IPortalDataHandlerService dataHandlerService, Logger l) {
        final Formatter f = new Formatter(new AppendableLogger(l, LogLevel.INFO));
       
        final Map<String, Set<Operations>> portalDataTypes = new TreeMap<String, Set<Operations>>();
       
        final Iterable<IPortalDataType> exportPortalDataTypes = dataHandlerService.getExportPortalDataTypes();
        addDataTypes(portalDataTypes, exportPortalDataTypes, Operations.EXPORT);
       
        final Iterable<IPortalDataType> deletePortalDataTypes = dataHandlerService.getDeletePortalDataTypes();
        addDataTypes(portalDataTypes, deletePortalDataTypes, Operations.DELETE);
       
        final TableFormatter tableFormatter = new TableFormatter(
                new TableEntry<String>("Data Type", "-", "s"),
                new TableEntry<String>("Export", "-", "s"),
                new TableEntry<String>("Delete", "-", "s"));
               
        for (final Map.Entry<String, Set<Operations>> portalDataTypeEntry : portalDataTypes.entrySet()) {
            final String typeId = portalDataTypeEntry.getKey();
            final Set<Operations> ops = portalDataTypeEntry.getValue();
            tableFormatter.addRow(
                new TableEntry<String>(typeId, "-", "s"),
                new TableEntry<Boolean>(ops.contains(Operations.EXPORT), "-", "b"),
                new TableEntry<Boolean>(ops.contains(Operations.DELETE), "-", "b"));
        }
       
        tableFormatter.format(f);
    }
   
    public static void format(Iterable<? extends IPortalData> data, Logger l) {
        final Formatter f = new Formatter(new AppendableLogger(l, LogLevel.INFO));
       
        final TableFormatter tableFormatter = new TableFormatter(
                new TableEntry<String>("sysid", "-", "s"),
                new TableEntry<String>("Description", "-", "s"));
       
        for (final IPortalData it : data) {
            final String dataId = it.getDataId();
           
            String dataTitle = it.getDataTitle();
            if (dataTitle == null || dataTitle.equals(dataId)) {
                dataTitle = "";
            }

            tableFormatter.addRow(
                    new TableEntry<String>(dataId, "-", "s"),
                    new TableEntry<String>(dataTitle, "-", "s"));
        }
       
        tableFormatter.format(f);
       
    }

    /**
     * @param portalDataTypes
     * @param exportPortalDataTypes
     * @param operation
     */
    private static void addDataTypes(final Map<String, Set<Operations>> portalDataTypes,
            final Iterable<IPortalDataType> exportPortalDataTypes, final Operations operation) {
        for (final IPortalDataType portalDataType : exportPortalDataTypes) {
            final String typeId = portalDataType.getTypeId();
            Set<Operations> supports = portalDataTypes.get(typeId);
            if (supports == null) {
                supports = EnumSet.of(operation);
                portalDataTypes.put(typeId, supports);
            }
            else {
                supports.add(operation);
            }
        }
    }
}
TOP

Related Classes of org.jasig.portal.io.xml.PortalDataHandlerServiceUtils

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.