GroupUtil.java
package ntnu.idatt2016.v233.SmartMat.util;
import java.util.UUID;
/**
* This class provide some useful methods used with the group entity.
*
* @author Pedro Cardona
* @version 1.0
*/
public class GroupUtil {
/**
* Calculates the level of a group based on its experience points.
*
* @param exp The experience points of the group.
* @return The level of the group.
*/
public static int getLevel(long exp){
return (int) (-3.0 * Math.log(10.0/ ((double)exp)));
}
/**
* Calculates the progress of the current level of a group based on its experience points.
*
* @param exp The experience points of the group.
* @return The progress of the current level of the group as a percentage.
*/
public static int getProgressOfLevel(long exp) {
int currentLevel = getLevel(exp);
double expNextLevel = (10.0 / Math.pow(Math.E, (currentLevel+1) / -3.0));
double expCurrentLevel = (10.0 / Math.pow(Math.E, (currentLevel) / -3.0));
double baseNextLevel = expNextLevel - expCurrentLevel;
double basedCurrentExp= (double) exp - expCurrentLevel;
return (int) ((basedCurrentExp/ baseNextLevel )* 100.0);
}
/**
* Generates a unique six-digit code using UUID.
*
* @return A unique six-digit code.
*/
public static String generateUniqueCode(){
String uuid = UUID.randomUUID().toString();
return uuid.replaceAll("-", "").substring(0, 6);
}
}