/** * @description Utility class for {describe the category of utilities: String, Date, Collection, etc.}. * All methods are static and side-effect-free (no SOQL, no DML). * Private constructor prevents instantiation. * @author Generated by Apex Class Writer Skill */ public with sharing class {ClassName} { // ─── Private Constructor ───────────────────────────────────────────── /** * @description Prevents instantiation — use static methods only */ @TestVisible private {ClassName}() { // Utility class — do not instantiate } // ─── Public Methods ────────────────────────────────────────────────── // TODO: Add utility methods below. Examples: /** * @description Safely converts a String to an Integer, returning a default if parsing fails * @param value The String to parse * @param defaultValue The fallback value if parsing fails * @return The parsed Integer or the default value * @example * Integer result = {ClassName}.safeParseInteger('42', 0); // returns 42 * Integer result = {ClassName}.safeParseInteger('abc', 0); // returns 0 */ public static Integer safeParseInteger(String value, Integer defaultValue) { if (String.isBlank(value)) { return defaultValue; } try { return Integer.valueOf(value.trim()); } catch (TypeException e) { return defaultValue; } } /** * @description Chunks a list into smaller sublists of the specified size. * Useful for processing records in governor-limit-safe batches. * @param items The list to chunk * @param chunkSize The maximum size of each chunk * @return A list of sublists, each containing up to chunkSize elements * @example * List> chunks = {ClassName}.chunkList(myList, 200); */ public static List> chunkList(List items, Integer chunkSize) { List> chunks = new List>(); if (items == null || items.isEmpty() || chunkSize <= 0) { return chunks; } List currentChunk = new List(); for (Object item : items) { currentChunk.add(item); if (currentChunk.size() == chunkSize) { chunks.add(currentChunk); currentChunk = new List(); } } if (!currentChunk.isEmpty()) { chunks.add(currentChunk); } return chunks; } /** * @description Extracts a Set of non-null field values from a list of SObjects * @param records The SObject records to extract from * @param fieldName The API name of the field to extract * @return A Set of non-null String values * @example * Set emails = {ClassName}.pluckStrings(contacts, 'Email'); */ public static Set pluckStrings(List records, String fieldName) { Set values = new Set(); if (records == null || String.isBlank(fieldName)) { return values; } for (SObject record : records) { Object val = record.get(fieldName); if (val != null) { values.add(String.valueOf(val)); } } return values; } }