mirror of
				https://github.com/Alfresco/alfresco-community-repo.git
				synced 2025-10-29 15:21:53 +00:00 
			
		
		
		
	125606 rmunteanu: Merged 5.1.1 (5.1.1) to 5.1.N (5.1.2)
      125515 slanglois: MNT-16155 Update source headers - add new Copyrights for Java and JSP source files + automatic check in the build
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@125788 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
		
	
		
			
				
	
	
		
			214 lines
		
	
	
		
			6.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			214 lines
		
	
	
		
			6.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| /*
 | |
|  * #%L
 | |
|  * Alfresco Repository
 | |
|  * %%
 | |
|  * Copyright (C) 2005 - 2016 Alfresco Software Limited
 | |
|  * %%
 | |
|  * This file is part of the Alfresco software. 
 | |
|  * If the software was purchased under a paid Alfresco license, the terms of 
 | |
|  * the paid license agreement will prevail.  Otherwise, the software is 
 | |
|  * provided under the following open source license terms:
 | |
|  * 
 | |
|  * Alfresco 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 3 of the License, or
 | |
|  * (at your option) any later version.
 | |
|  * 
 | |
|  * Alfresco 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 Alfresco. If not, see <http://www.gnu.org/licenses/>.
 | |
|  * #L%
 | |
|  */
 | |
| package org.alfresco.service.cmr.admin;
 | |
| 
 | |
| import org.alfresco.util.EqualsHelper;
 | |
| import org.alfresco.util.ParameterCheck;
 | |
| 
 | |
| /**
 | |
|  * Bean holding the known or unknown usage values of the repository.
 | |
|  * 
 | |
|  * @author Derek Hulley
 | |
|  * @since 3.4
 | |
|  */
 | |
| public class RepoUsage
 | |
| {
 | |
|     /*
 | |
|      * DH:
 | |
|      * This class could operate using a Map to store limits and restrictions dynamically.
 | |
|      * Policies could be wired in to do the comparisons.  For expedience and simplicity,
 | |
|      * the supported limits and associated behaviour are hard-coded.
 | |
|      */
 | |
|     
 | |
|     /**
 | |
|      * Enumeration of the common usage types
 | |
|      * 
 | |
|      * @author Derek Hulley
 | |
|      * @since 3.4
 | |
|      */
 | |
|     public enum UsageType
 | |
|     {
 | |
|         /**
 | |
|          * Identifies usage: user count
 | |
|          */
 | |
|         USAGE_USERS,
 | |
|         /**
 | |
|          * Identifies usage: document count
 | |
|          */
 | |
|         USAGE_DOCUMENTS,
 | |
|         /**
 | |
|          * Identifies usage: all types of usage
 | |
|          */
 | |
|         USAGE_ALL
 | |
|     }
 | |
|     
 | |
|     /**
 | |
|      * Enumeration of the server license modes.
 | |
|      * 
 | |
|      * @author Derek Hulley
 | |
|      * @since 3.4
 | |
|      */
 | |
|     public enum LicenseMode
 | |
|     {
 | |
|         /**
 | |
|          * The server is running with full Enteprise license.
 | |
|          */
 | |
|         ENTERPRISE,
 | |
|         /**
 | |
|          * The server is running with a Team license.
 | |
|          */
 | |
|         TEAM,
 | |
|         /**
 | |
|          * The license mode is unknown.
 | |
|          */
 | |
|         UNKNOWN
 | |
|     }
 | |
|     
 | |
|     private final Long lastUpdate;
 | |
|     private final Long users;
 | |
|     private final Long documents;
 | |
|     private final LicenseMode licenseMode;
 | |
|     private final Long licenseExpiryDate;
 | |
|     private final boolean readOnly;
 | |
| 
 | |
|     /**
 | |
|      * @param lastUpdate            the time the repository usage was last updated
 | |
|      * @param users                 the number of users or <tt>null</tt> if not known
 | |
|      * @param documents             the number of documents or <tt>null</tt> if not known
 | |
|      * @param licenseMode           the server license mode in effect at runtime
 | |
|      * @param licenseExpiryDate     the date that the license expires or <tt>null</tt> if it doesn't
 | |
|      * @param readOnly              <tt>true</tt> if the server is currently read-only
 | |
|      */
 | |
|     public RepoUsage(
 | |
|             Long lastUpdate,
 | |
|             Long users,
 | |
|             Long documents,
 | |
|             LicenseMode licenseMode,
 | |
|             Long licenseExpiryDate,
 | |
|             boolean readOnly)
 | |
|     {
 | |
|         ParameterCheck.mandatory("licenseMode", licenseMode);
 | |
|         
 | |
|         this.lastUpdate = lastUpdate;
 | |
|         this.users = users;
 | |
|         this.documents = documents;
 | |
|         this.licenseMode = licenseMode;
 | |
|         this.licenseExpiryDate = licenseExpiryDate;
 | |
|         this.readOnly = readOnly;
 | |
|     }
 | |
| 
 | |
|     @Override
 | |
|     public boolean equals(Object obj)
 | |
|     {
 | |
|         if (this == obj) return true;
 | |
|         if (obj == null) return false;
 | |
|         if (getClass() != obj.getClass()) return false;
 | |
|         RepoUsage that = (RepoUsage) obj;
 | |
|         return  EqualsHelper.nullSafeEquals(this.users, that.users) &&
 | |
|                 EqualsHelper.nullSafeEquals(this.documents, that.documents) &&
 | |
|                 EqualsHelper.nullSafeEquals(this.licenseMode, that.licenseMode) &&
 | |
|                 EqualsHelper.nullSafeEquals(this.licenseExpiryDate, that.licenseExpiryDate) &&
 | |
|                 this.readOnly == that.readOnly;
 | |
|     }
 | |
| 
 | |
|     @Override
 | |
|     public String toString()
 | |
|     {
 | |
|         StringBuilder sb = new StringBuilder(128);
 | |
|         sb.append("RepoUsage")
 | |
|           .append("[lastUpdate=").append(lastUpdate)
 | |
|           .append(", users=").append(users)
 | |
|           .append(", documents=").append(documents)
 | |
|           .append(", licenseMode=").append(licenseMode)
 | |
|           .append(", licenseExpiryDate=").append(licenseExpiryDate)
 | |
|           .append(", readOnly=").append(readOnly)
 | |
|           .append("]");
 | |
|         return sb.toString();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the time (ms since epoch) that the repository usage was last updated.
 | |
|      * 
 | |
|      * @return          time of last usage update
 | |
|      */
 | |
|     public Long getLastUpdate()
 | |
|     {
 | |
|         return lastUpdate;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the number of users or <tt>null</tt> if unknown
 | |
|      * 
 | |
|      * @return          the number of users or <tt>null</tt> if unknown
 | |
|      */
 | |
|     public Long getUsers()
 | |
|     {
 | |
|         return users;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the number of documents or <tt>null</tt> if not known
 | |
|      * 
 | |
|      * @return          document count or <tt>null</tt> if not known
 | |
|      */
 | |
|     public Long getDocuments()
 | |
|     {
 | |
|         return documents;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the server license mode.  This is determined by (a) the build in use and
 | |
|      * (b) the installed license.
 | |
|      * 
 | |
|      * @return          the license mode (never <tt>null</tt>)
 | |
|      */
 | |
|     public LicenseMode getLicenseMode()
 | |
|     {
 | |
|         return licenseMode;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the server license expiry date.  This is determined by the license and is
 | |
|      * <tt>null</tt> if there is no expiry or if it is unknown.
 | |
|      * 
 | |
|      * @return          the license expiry date or <tt>null</tt>
 | |
|      */
 | |
|     public Long getLicenseExpiryDate()
 | |
|     {
 | |
|         return licenseExpiryDate;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the read-write state of the repository
 | |
|      * 
 | |
|      * @return          <tt>true</tt> if the server is in read-only mode otherwise <tt>false</tt>
 | |
|      */
 | |
|     public boolean isReadOnly()
 | |
|     {
 | |
|         return readOnly;
 | |
|     }
 | |
| }
 |