package br.gov.servicos.orgao; import org.springframework.stereotype.Component; import java.util.regex.Matcher; import java.util.regex.Pattern; @Component public class OrgaoUtils { public static final Pattern URL_PATTERN = Pattern.compile("http://estruturaorganizacional\\.dados\\.gov\\.br/(doc|id)/unidade-organizacional/(\\d+)"); public static final Pattern URL_ID_PATTERN = Pattern.compile("http-estruturaorganizacional-dados-gov-br-(doc|id)-unidade-organizacional-(\\d+)"); public long obterId(String url) { if (URL_PATTERN.asPredicate().negate().test(url) && URL_ID_PATTERN.asPredicate().negate().test(url)) { throw new IllegalArgumentException("Formato url inválida para SIORG: " + url); } Matcher m = URL_PATTERN.matcher(url); if (!m.find()) { m = URL_ID_PATTERN.matcher(url); m.find(); } return Long.parseLong(m.group(2)); } }