1 /* 2 * Copyright (c) 2002-2016, Mairie de Paris 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * 1. Redistributions of source code must retain the above copyright notice 10 * and the following disclaimer. 11 * 12 * 2. Redistributions in binary form must reproduce the above copyright notice 13 * and the following disclaimer in the documentation and/or other materials 14 * provided with the distribution. 15 * 16 * 3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its 17 * contributors may be used to endorse or promote products derived from 18 * this software without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE 24 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 30 * POSSIBILITY OF SUCH DAMAGE. 31 * 32 * License 1.0 33 */ 34 package fr.paris.lutece.plugins.avatarserver.service; 35 36 import fr.paris.lutece.plugins.avatarserver.business.Avatar; 37 import fr.paris.lutece.plugins.avatarserver.business.AvatarHome; 38 import fr.paris.lutece.portal.service.util.AppPropertiesService; 39 40 /** 41 * Avatar Service 42 */ 43 public final class AvatarService 44 { 45 private static final String PROPERTY_SIZE = "avatarserver.avatar.size"; 46 private static final String PROPERTY_QUALITY = "avatarserver.avatar.quality"; 47 private static final int DEFAULT_SIZE = 100; 48 private static final String DEFAULT_QUALITY = "0.9"; 49 50 /** Private constructor */ 51 private AvatarService( ) 52 { 53 } 54 55 /** 56 * Create an instance of the avatar class 57 * 58 * @param avatar 59 * The instance of the Avatar which contains the informations to store 60 * @return The instance of avatar which has been created with its primary key. 61 */ 62 public static Avatar create( Avatar avatar ) 63 { 64 avatar.setHash( HashService.getHash( avatar.getEmail( ) ) ); 65 avatar.setValue( ImageService.resizeImage( avatar.getValue( ), getSize( ), getQuality( ) ) ); 66 67 return AvatarHome.create( avatar ); 68 } 69 70 /** 71 * Update an instance of the avatar class 72 * 73 * @param avatar 74 * The instance of the Avatar which contains the informations to store 75 * @return The instance of avatar which has been created with its primary key. 76 */ 77 public static Avatar update( Avatar avatar ) 78 { 79 avatar.setHash( HashService.getHash( avatar.getEmail( ) ) ); 80 avatar.setValue( ImageService.resizeImage( avatar.getValue( ), getSize( ), getQuality( ) ) ); 81 82 return AvatarHome.update( avatar ); 83 } 84 85 /** 86 * Get the avatar size 87 * 88 * @return The size 89 */ 90 private static int getSize( ) 91 { 92 return AppPropertiesService.getPropertyInt( PROPERTY_SIZE, DEFAULT_SIZE ); 93 } 94 95 /** 96 * Get the avatar quality 97 * 98 * @return The quality 99 */ 100 public static float getQuality( ) 101 { 102 return Float.parseFloat( AppPropertiesService.getProperty( PROPERTY_QUALITY, DEFAULT_QUALITY ) ); 103 } 104 }