package io.pcp.parfait.dxm; import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * {@link IdentifierSource} which logs a warning on every generation, and returns a dummy value. * Useful for generating a list of IDs which should later be explicity-provided. */ public class WarningIdentifierSource implements IdentifierSource { private static final Logger LOG = LoggerFactory.getLogger(WarningIdentifierSource.class); private final AtomicInteger nextId; public WarningIdentifierSource(int initialId) { nextId = new AtomicInteger(initialId); } @Override public int calculateId(String name, Set<Integer> usedIds) { LOG.warn("No identifier provided for value " + name + "; please specify an explicit ID"); return nextId.getAndIncrement(); } }