org.wso2.carbon.registry.activities.services.utils.ActivityBeanPopulator.java Source code

Java tutorial

Introduction

Here is the source code for org.wso2.carbon.registry.activities.services.utils.ActivityBeanPopulator.java

Source

/*
 * Copyright (c) 2006, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
 *
 * Licensed 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.wso2.carbon.registry.activities.services.utils;

import org.apache.axis2.context.MessageContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.registry.core.LogEntry;
import org.wso2.carbon.registry.core.Registry;
import org.wso2.carbon.registry.core.RegistryConstants;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
import org.wso2.carbon.registry.core.session.UserRegistry;
import org.wso2.carbon.registry.common.beans.ActivityBean;
import org.wso2.carbon.registry.common.utils.CommonUtil;
import org.wso2.carbon.user.core.UserRealm;
import org.wso2.carbon.user.core.UserStoreManager;

import java.text.DateFormat;
import java.text.ParseException;
import java.util.*;

public class ActivityBeanPopulator {

    private static final Log log = LogFactory.getLog(ActivityBeanPopulator.class);

    public static ActivityBean populate(UserRegistry userRegistry, String userName, String resourcePath,
            String fromDate, String toDate, String filter, String pageStr) throws Exception {
        UserRealm realm = userRegistry.getUserRealm();
        UserStoreManager reader = realm.getUserStoreManager();
        String[] roles = reader.getRoleListOfUser(userRegistry.getUserName());
        List list = Arrays.asList(roles);
        ActivityBean activityBean = new ActivityBean();

        if (resourcePath != null && resourcePath.equals("")) {
            resourcePath = null;
        }

        if (userName != null && userName.equals("")) {
            userName = null;
        }

        if (fromDate != null && fromDate.equals("")) {
            fromDate = null;
        }

        if (toDate != null && toDate.equals("")) {
            toDate = null;
        }

        if (filter == null) {
            filter = "1";
        }

        List<Integer> filterValues = new LinkedList<Integer>();
        if (filter.equals("resourceAdd")) {
            filterValues.add(LogEntry.ADD);

        } else if (filter.equals("resourceUpdate")) {
            filterValues.add(LogEntry.UPDATE);

        } else if (filter.equals("commentings")) {
            filterValues.add(LogEntry.COMMENT);
            filterValues.add(LogEntry.DELETE_COMMENT);

        } else if (filter.equals("taggings")) {
            filterValues.add(LogEntry.TAG);
            filterValues.add(LogEntry.REMOVE_TAG);

        } else if (filter.equals("ratings")) {
            filterValues.add(LogEntry.RATING);

        } else if (filter.equals("restore")) {
            filterValues.add(LogEntry.RESTORE);

        } else if (filter.equals("delete")) {
            filterValues.add(LogEntry.DELETE_RESOURCE);

        } else if (filter.equals("addAssociation")) {
            filterValues.add(LogEntry.ADD_ASSOCIATION);

        } else if (filter.equals("removeAssociation")) {
            filterValues.add(LogEntry.REMOVE_ASSOCIATION);

        } else if (filter.equals("createSymbolicLink")) {
            filterValues.add(LogEntry.CREATE_SYMBOLIC_LINK);

        } else if (filter.equals("createRemoteLink")) {
            filterValues.add(LogEntry.CREATE_REMOTE_LINK);

        } else if (filter.equals("removeLink")) {
            filterValues.add(LogEntry.REMOVE_LINK);

        } else if (filter.equals("associateAspect")) {
            filterValues.add(LogEntry.ASSOCIATE_ASPECT);

        } else {
            filterValues.add(-1);

        }

        try {
            List<LogEntry> logList = new LinkedList<LogEntry>();
            for (Integer filterValue : filterValues) {
                logList.addAll(Arrays.asList(userRegistry.getLogs(resourcePath, filterValue, userName,
                        computeDate(fromDate), computeDate(toDate), true)));
            }
            LogEntry[] logs = logList.toArray(new LogEntry[logList.size()]);
            Arrays.sort(logs, new Comparator<LogEntry>() {
                public int compare(LogEntry o1, LogEntry o2) {
                    return o2.getDate().compareTo(o1.getDate());
                }
            });
            if (list.contains(userRegistry.getUserRealm().getRealmConfiguration().getAdminRoleName())) {
                activityBean.setActivity(constructActivityStatements(userRegistry, logs));
            } else {
                activityBean.setActivity(
                        constructActivityStatementsfornormaluser(userRegistry, logs, userRegistry.getUserName()));
            }
        } catch (RegistryException e) {

            String msg = "Failed to get activities for generating activity search results " + e.getMessage();
            log.error(msg, e);
            activityBean.setErrorMessage(msg);
        }
        return activityBean;
    }

    private static String[] constructActivityStatements(Registry registry, LogEntry[] logs) {

        String[] activity = new String[logs.length];

        for (int i = 0; i < logs.length; i++) {

            LogEntry logEntry = logs[i];
            if (logEntry.getAction() == LogEntry.ADD) {
                String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|" + logEntry.getUserName()
                        + "|" + logEntry.getUserName() + "|" + " has added the resource " + "|"
                        + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|" + "  "
                        + CommonUtil.formatDate(logEntry.getDate()) + ".";
                activity[i] = entry;

            } else if (logEntry.getAction() == LogEntry.UPDATE) {
                String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|" + logEntry.getUserName()
                        + "|" + logEntry.getUserName() + "|" + " has updated the resource " + "|"
                        + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|" + "  "
                        + CommonUtil.formatDate(logEntry.getDate()) + ".";
                activity[i] = entry;

            } else if (logEntry.getAction() == LogEntry.DELETE_RESOURCE) {
                String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|" + logEntry.getUserName()
                        + "|" + logEntry.getUserName() + "|" + " has deleted the resource " + "|"
                        + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|" + "  "
                        + CommonUtil.formatDate(logEntry.getDate()) + ".";
                activity[i] = entry;

            } else if (logEntry.getAction() == LogEntry.COMMENT) {
                String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|" + logEntry.getUserName()
                        + "|" + logEntry.getUserName() + "|" + " has commented on resource " + "|"
                        + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|" + "  "
                        + CommonUtil.formatDate(logEntry.getDate()) + " with the following comment." + "|"
                        + logEntry.getActionData();
                activity[i] = entry;

            } else if (logEntry.getAction() == LogEntry.DELETE_COMMENT) {
                String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|" + logEntry.getUserName()
                        + "|" + logEntry.getUserName() + "|" + " has deleted the comment '"
                        + logEntry.getActionData() + "' on the resource " + "|" + logEntry.getResourcePath() + "|"
                        + logEntry.getResourcePath() + "|" + "  " + CommonUtil.formatDate(logEntry.getDate()) + ".";
                activity[i] = entry;

            } else if (logEntry.getAction() == LogEntry.TAG) {
                String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|" + logEntry.getUserName()
                        + "|" + logEntry.getUserName() + "|" + " has tagged the resource " + "|"
                        + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|" + " with tag '"
                        + logEntry.getActionData() + "'  " + CommonUtil.formatDate(logEntry.getDate()) + ".";
                activity[i] = entry;

            } else if (logEntry.getAction() == LogEntry.REMOVE_TAG) {
                String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|" + logEntry.getUserName()
                        + "|" + logEntry.getUserName() + "|" + " has removed the tag '" + logEntry.getActionData()
                        + "' on the resource " + "|" + logEntry.getResourcePath() + "|" + logEntry.getResourcePath()
                        + "|" + "  " + CommonUtil.formatDate(logEntry.getDate()) + ".";
                activity[i] = entry;

            } else if (logEntry.getAction() == LogEntry.RATING) {
                String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|" + logEntry.getUserName()
                        + "|" + logEntry.getUserName() + "|" + " has rated the resource " + "|"
                        + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|" + " with rating "
                        + logEntry.getActionData() + "  " + CommonUtil.formatDate(logEntry.getDate()) + ".";
                activity[i] = entry;

            } else if (logEntry.getAction() == LogEntry.ADD_ASSOCIATION) {
                String[] actionData = logEntry.getActionData().split(";");
                if (actionData != null && actionData.length >= 2) {
                    String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                            + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                            + " has added an association of type " + actionData[0] + " from the resource " + "|"
                            + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|"
                            + " to the resource " + actionData[1] + "  " + CommonUtil.formatDate(logEntry.getDate())
                            + ".";
                    activity[i] = entry;
                }

            } else if (logEntry.getAction() == LogEntry.REMOVE_ASSOCIATION) {
                String[] actionData = logEntry.getActionData().split(";");
                if (actionData != null && actionData.length >= 2) {
                    String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                            + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                            + " has removed an association of type " + actionData[0] + " from the resource " + "|"
                            + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|"
                            + " to the resource " + actionData[1] + "  " + CommonUtil.formatDate(logEntry.getDate())
                            + ".";
                    activity[i] = entry;
                }

            } else if (logEntry.getAction() == LogEntry.RESTORE) {
                String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|" + logEntry.getUserName()
                        + "|" + logEntry.getUserName() + "|" + " has restored the resource " + "|"
                        + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|"
                        + ((logEntry.getActionData() != null) ? " to the version " + logEntry.getActionData() : "")
                        + "  " + CommonUtil.formatDate(logEntry.getDate()) + ".";
                activity[i] = entry;
            } else if (logEntry.getAction() == LogEntry.ASSOCIATE_ASPECT) {
                String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|" + logEntry.getUserName()
                        + "|" + logEntry.getUserName() + "|" + " has associated the aspect "
                        + logEntry.getActionData() + " to the resource " + "|" + logEntry.getResourcePath() + "|"
                        + logEntry.getResourcePath() + "|" + "  " + CommonUtil.formatDate(logEntry.getDate()) + ".";
                activity[i] = entry;
            } else if (logEntry.getAction() == LogEntry.COPY) {
                String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|" + logEntry.getUserName()
                        + "|" + logEntry.getUserName() + "|" + " has copied the resource " + "|"
                        + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|" + " to the Location "
                        + logEntry.getActionData() + "  " + CommonUtil.formatDate(logEntry.getDate()) + ".";
                activity[i] = entry;
            } else if (logEntry.getAction() == LogEntry.RENAME) {
                String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|" + logEntry.getUserName()
                        + "|" + logEntry.getUserName() + "|" + " has renamed the resource to " + "|"
                        + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|" + " from old Name: "
                        + logEntry.getActionData() + "  " + CommonUtil.formatDate(logEntry.getDate()) + ".";
                activity[i] = entry;
            } else if (logEntry.getAction() == LogEntry.MOVE) {
                String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|" + logEntry.getUserName()
                        + "|" + logEntry.getUserName() + "|" + " has moved the resource to " + "|"
                        + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|"
                        + " from the Location " + logEntry.getActionData() + "  "
                        + CommonUtil.formatDate(logEntry.getDate()) + ".";
                activity[i] = entry;
            } else if (logEntry.getAction() == LogEntry.CREATE_SYMBOLIC_LINK) {
                String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|" + logEntry.getUserName()
                        + "|" + logEntry.getUserName() + "|" + " has created a symbolic link " + "|"
                        + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|" + " to the Location "
                        + logEntry.getActionData() + "  " + CommonUtil.formatDate(logEntry.getDate()) + ".";
                activity[i] = entry;
            } else if (logEntry.getAction() == LogEntry.CREATE_REMOTE_LINK) {
                if (logEntry.getActionData().contains(";")) {
                    String[] actionData = logEntry.getActionData().split(";");
                    if (actionData != null && actionData.length >= 2) {
                        String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                                + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                                + " has created a remote link " + "|" + logEntry.getResourcePath() + "|"
                                + logEntry.getResourcePath() + "|" + " to the instance " + actionData[0]
                                + " at path " + actionData[1] + "  " + CommonUtil.formatDate(logEntry.getDate())
                                + ".";
                        activity[i] = entry;
                    }
                } else {
                    String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                            + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                            + " has created a remote link " + "|" + logEntry.getResourcePath() + "|"
                            + logEntry.getResourcePath() + "|" + " to the Location " + logEntry.getActionData()
                            + "  " + CommonUtil.formatDate(logEntry.getDate()) + ".";
                    activity[i] = entry;
                }
            } else if (logEntry.getAction() == LogEntry.REMOVE_LINK) {
                String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|" + logEntry.getUserName()
                        + "|" + logEntry.getUserName() + "|" + " has removed link " + "|"
                        + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|" + "  "
                        + CommonUtil.formatDate(logEntry.getDate()) + ".";
                activity[i] = entry;
            }
        }

        return activity;
    }

    private static Boolean resourceExists(Registry registry, LogEntry entry) {
        try {
            return registry != null && entry != null && entry.getResourcePath() != null
                    && registry.resourceExists(entry.getResourcePath());
        } catch (RegistryException ignore) {
            return false;
        }
    }

    private static String[] constructActivityStatementsfornormaluser(Registry registry, LogEntry[] logs,
            String Username) {

        ArrayList<String> list = new ArrayList<String>();
        for (int i = 0; i < logs.length; i++) {

            LogEntry logEntry = logs[i];
            if (logEntry.getUserName().equals(Username)) {
                if (logEntry.getAction() == LogEntry.ADD) {
                    String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                            + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                            + " has added the resource " + "|" + logEntry.getResourcePath() + "|"
                            + logEntry.getResourcePath() + "|" + "  " + CommonUtil.formatDate(logEntry.getDate())
                            + ".";
                    list.add(entry);

                } else if (logEntry.getAction() == LogEntry.UPDATE) {
                    String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                            + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                            + " has updated the resource " + "|" + logEntry.getResourcePath() + "|"
                            + logEntry.getResourcePath() + "|" + "  " + CommonUtil.formatDate(logEntry.getDate())
                            + ".";
                    list.add(entry);

                } else if (logEntry.getAction() == LogEntry.DELETE_RESOURCE) {
                    String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                            + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                            + " has deleted the resource " + "|" + logEntry.getResourcePath() + "|"
                            + logEntry.getResourcePath() + "|" + "  " + CommonUtil.formatDate(logEntry.getDate())
                            + ".";
                    list.add(entry);

                } else if (logEntry.getAction() == LogEntry.COMMENT) {
                    String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                            + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                            + " has commented on resource " + "|" + logEntry.getResourcePath() + "|"
                            + logEntry.getResourcePath() + "|" + "  " + CommonUtil.formatDate(logEntry.getDate())
                            + " with the following comment." + "|" + logEntry.getActionData();
                    list.add(entry);

                } else if (logEntry.getAction() == LogEntry.DELETE_COMMENT) {
                    String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                            + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                            + " has deleted the comment '" + logEntry.getActionData() + "' on the resource " + "|"
                            + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|" + "  "
                            + CommonUtil.formatDate(logEntry.getDate()) + ".";
                    list.add(entry);

                } else if (logEntry.getAction() == LogEntry.TAG) {
                    String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                            + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                            + " has tagged the resource " + "|" + logEntry.getResourcePath() + "|"
                            + logEntry.getResourcePath() + "|" + " with tag '" + logEntry.getActionData() + "'  "
                            + CommonUtil.formatDate(logEntry.getDate()) + ".";
                    list.add(entry);

                } else if (logEntry.getAction() == LogEntry.REMOVE_TAG) {
                    String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                            + logEntry.getUserName() + "|" + logEntry.getUserName() + "|" + " has removed the tag '"
                            + logEntry.getActionData() + "' on the resource " + "|" + logEntry.getResourcePath()
                            + "|" + logEntry.getResourcePath() + "|" + "  "
                            + CommonUtil.formatDate(logEntry.getDate()) + ".";
                    list.add(entry);

                } else if (logEntry.getAction() == LogEntry.RATING) {
                    String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                            + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                            + " has rated the resource " + "|" + logEntry.getResourcePath() + "|"
                            + logEntry.getResourcePath() + "|" + " with rating " + logEntry.getActionData() + "  "
                            + CommonUtil.formatDate(logEntry.getDate()) + ".";
                    list.add(entry);

                } else if (logEntry.getAction() == LogEntry.ADD_ASSOCIATION) {
                    String[] actionData = logEntry.getActionData().split(";");
                    if (actionData != null && actionData.length >= 2) {
                        String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                                + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                                + " has added an association of type " + actionData[0] + " from the resource " + "|"
                                + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|"
                                + " to the resource " + actionData[1] + "  "
                                + CommonUtil.formatDate(logEntry.getDate()) + ".";
                        list.add(entry);
                    }

                } else if (logEntry.getAction() == LogEntry.REMOVE_ASSOCIATION) {
                    String[] actionData = logEntry.getActionData().split(";");
                    if (actionData != null && actionData.length >= 2) {
                        String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                                + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                                + " has removed an association of type " + actionData[0] + " from the resource "
                                + "|" + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|"
                                + " to the resource " + actionData[1] + "  "
                                + CommonUtil.formatDate(logEntry.getDate()) + ".";
                        list.add(entry);
                    }

                } else if (logEntry.getAction() == LogEntry.RESTORE) {
                    String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                            + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                            + " has restored the resource " + "|" + logEntry.getResourcePath() + "|"
                            + logEntry.getResourcePath() + "|"
                            + ((logEntry.getActionData() != null) ? " to the version " + logEntry.getActionData()
                                    : "")
                            + "  " + CommonUtil.formatDate(logEntry.getDate()) + ".";
                    list.add(entry);

                } else if (logEntry.getAction() == LogEntry.ASSOCIATE_ASPECT) {
                    String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                            + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                            + " has associated the aspect " + logEntry.getActionData() + " to the resource " + "|"
                            + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|" + "  "
                            + CommonUtil.formatDate(logEntry.getDate()) + ".";
                    list.add(entry);

                } else if (logEntry.getAction() == LogEntry.COPY) {
                    String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                            + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                            + " has copied the resource " + "|" + logEntry.getResourcePath() + "|"
                            + logEntry.getResourcePath() + "|" + " to the Location " + logEntry.getActionData()
                            + "  " + CommonUtil.formatDate(logEntry.getDate()) + ".";
                    list.add(entry);

                } else if (logEntry.getAction() == LogEntry.RENAME) {
                    String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                            + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                            + " has renamed the resource " + "|" + logEntry.getResourcePath() + "|"
                            + logEntry.getResourcePath() + "|" + " to new Name: " + logEntry.getActionData() + "  "
                            + CommonUtil.formatDate(logEntry.getDate()) + ".";
                    list.add(entry);

                } else if (logEntry.getAction() == LogEntry.MOVE) {
                    String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                            + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                            + " has moved the resource " + "|" + logEntry.getResourcePath() + "|"
                            + logEntry.getResourcePath() + "|" + " to the Location " + logEntry.getActionData()
                            + "  " + CommonUtil.formatDate(logEntry.getDate()) + ".";
                    list.add(entry);

                } else if (logEntry.getAction() == LogEntry.CREATE_SYMBOLIC_LINK) {
                    String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                            + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                            + " has created a symbolic link " + "|" + logEntry.getResourcePath() + "|"
                            + logEntry.getResourcePath() + "|" + " to the Location " + logEntry.getActionData()
                            + "  " + CommonUtil.formatDate(logEntry.getDate()) + ".";
                    list.add(entry);

                } else if (logEntry.getAction() == LogEntry.CREATE_REMOTE_LINK) {
                    if (logEntry.getActionData().contains(";")) {
                        String[] actionData = logEntry.getActionData().split(";");
                        if (actionData != null && actionData.length >= 2) {
                            String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                                    + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                                    + " has created a remote link " + "|" + logEntry.getResourcePath() + "|"
                                    + logEntry.getResourcePath() + "|" + " to the instance " + actionData[0]
                                    + " at path " + actionData[1] + "  " + CommonUtil.formatDate(logEntry.getDate())
                                    + ".";
                            list.add(entry);
                        }
                    } else {
                        String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                                + logEntry.getUserName() + "|" + logEntry.getUserName() + "|"
                                + " has created a remote link " + "|" + logEntry.getResourcePath() + "|"
                                + logEntry.getResourcePath() + "|" + " to the Location " + logEntry.getActionData()
                                + "  " + CommonUtil.formatDate(logEntry.getDate()) + ".";
                        list.add(entry);
                    }

                } else if (logEntry.getAction() == LogEntry.REMOVE_LINK) {
                    String entry = Boolean.toString(resourceExists(registry, logEntry)) + "|"
                            + logEntry.getUserName() + "|" + logEntry.getUserName() + "|" + " has removed link "
                            + "|" + logEntry.getResourcePath() + "|" + logEntry.getResourcePath() + "|" + "  "
                            + CommonUtil.formatDate(logEntry.getDate()) + ".";
                    list.add(entry);
                }
            }

        }
        String[] activity = new String[list.size()];
        for (int i = 0; i < list.size(); i++) {
            activity[i] = list.get(i);
        }
        return activity;
    }

    /**
     * Converts given strings to Dates
     *
     * @param dateString Allowed format mm/dd/yyyy
     * @return Date corresponding to the given string date
     */
    private static Date computeDate(String dateString) throws RegistryException {

        if (dateString == null || dateString.length() == 0) {
            return null;
        }

        DateFormat formatter = DateFormat.getDateInstance(DateFormat.SHORT, Locale.ENGLISH);
        try {
            return formatter.parse(dateString);
        } catch (ParseException e) {
            String msg = "Date format is invalid: " + dateString;
            throw new RegistryException(msg, e);
        }
    }
}