/** * $URL:$ * $Id:$ * * Copyright (c) 2006-2009 The Sakai Foundation * * Licensed under the Educational Community 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.opensource.org/licenses/ECL-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.sakaiproject.sitestats.api; import java.util.List; public interface ServerWideReportManager { // ################################################################ // Server-wide activity related methods // ################################################################ /** * Get total login activity statistics grouped by month. * * @return a list of login statistics. * format: String yyyy-mm, Total Logins, */ public List<ServerWideStatsRecord> getMonthlyTotalLogins(); /** * Get unique login activity statistics grouped by month. * * @return a list of login statistics. * format: String yyyy-mm, Total Unique Logins */ public List<ServerWideStatsRecord> getMonthlyUniqueLogins(); /** * Get total login activity statistics grouped by week. * * @return a list of login statistics where date is the Monday's of the * week. format: Date, Total Logins, Total Unique Logins */ public List<ServerWideStatsRecord> getWeeklyTotalLogins(); /** * Get unique login activity statistics grouped by week. * * @return a list of login statistics where date is the Monday's of the * week. format: Date, Total Logins */ public List<ServerWideStatsRecord> getWeeklyUniqueLogins(); /** * Get total login activity statistics grouped by day. * * @return a list of login statistics. format: Date, Total Logins */ public List<ServerWideStatsRecord> getDailyTotalLogins(); /** * Get unique login activity statistics grouped by day. * * @return a list of login statistics. format: Date, Total Unique Logins */ public List<ServerWideStatsRecord> getDailyUniqueLogins(); /** * Get site site created or deleted per time period. * * @param period string: daily, weekly, monthly * @return a list of login statistics. format: Date, number of site created, * number of site deleted */ public List<ServerWideStatsRecord> getSiteCreatedDeletedStats (String period); /** * Get number of new user login. * * @param period string: daily, weekly, monthly * @return a list of login statistics. format: Date, number of new user. */ public List<ServerWideStatsRecord> getNewUserStats (String period); /** * Get top 20 activities in the last 7/30/365 daily average. * * @return a list of activities. format: event, last 7, last 30, last 365 * average sorted by last 7 */ public List<ServerWideStatsRecord> getTop20Activities (); /** * Get regular users by week * * @return format: Date, number of users login 5+ in the week, 4, 3, 2, 1 */ public List<ServerWideStatsRecord> getWeeklyRegularUsers (); /** * Get session start in the last 30 days * * @return format: hour, number of logins */ public List<ServerWideStatsRecord> getHourlyUsagePattern (); /** * Get tool count * * @return format: tool id, tool count */ public List<ServerWideStatsRecord> getToolCount (); public byte[] generateReportChart(String reportType, int width, int height); }