Skip to content

Instantly share code, notes, and snippets.

@DaHoC
Last active January 22, 2025 12:52
Show Gist options
  • Save DaHoC/7bff57332cb8b7043aedaeecbd65c832 to your computer and use it in GitHub Desktop.
Save DaHoC/7bff57332cb8b7043aedaeecbd65c832 to your computer and use it in GitHub Desktop.
Helper function to calculate 5 rating stars display (empty, half, full) based on an average rating value
package com.kaput.portal.templaterenderer;
import io.quarkus.qute.TemplateEnum;
import io.quarkus.qute.TemplateExtension;
@TemplateExtension
public class RatingStarsTemplateRenderer {
@TemplateEnum
public enum StarStyleEnum {
EMPTY,
HALF,
FULL
}
static StarStyleEnum[] getStarStylesByAverageRating(Float averageRating) {
if (averageRating == null || averageRating.isNaN() || averageRating.isInfinite()) {
return new StarStyleEnum[]{StarStyleEnum.EMPTY, StarStyleEnum.EMPTY, StarStyleEnum.EMPTY, StarStyleEnum.EMPTY, StarStyleEnum.EMPTY};
}
StarStyleEnum[] starStyles = new StarStyleEnum[5];
int roundedDoubledSteps = Math.round(averageRating * 2);
starStyles[0] = roundedDoubledSteps > 1 ? StarStyleEnum.FULL : roundedDoubledSteps == 1 ? StarStyleEnum.HALF : StarStyleEnum.EMPTY;
starStyles[1] = roundedDoubledSteps > 3 ? StarStyleEnum.FULL : roundedDoubledSteps == 3 ? StarStyleEnum.HALF : StarStyleEnum.EMPTY;
starStyles[2] = roundedDoubledSteps > 5 ? StarStyleEnum.FULL : roundedDoubledSteps == 5 ? StarStyleEnum.HALF : StarStyleEnum.EMPTY;
starStyles[3] = roundedDoubledSteps > 7 ? StarStyleEnum.FULL : roundedDoubledSteps == 7 ? StarStyleEnum.HALF : StarStyleEnum.EMPTY;
starStyles[4] = roundedDoubledSteps > 9 ? StarStyleEnum.FULL : roundedDoubledSteps == 9 ? StarStyleEnum.HALF : StarStyleEnum.EMPTY;
return starStyles;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment