/** * Sets the variants. * * <p>See RFC 5646 section 2.2.5. * * @param variants The variants. {@code null} if not defined. * * @throws LangTagException If the variant syntax is invalid. */ public void setVariants(final String... variants) throws LangTagException { if (variants == null || variants.length == 0) { this.variants = null; return; } this.variants = new String[variants.length]; for (int i=0; i < variants.length; i++) { ensureMaxLength(variants[i]); if (! isVariant(variants[i])) throw new LangTagException("Invalid variant subtag"); this.variants[i] = variants[i].toLowerCase(); } }
while (pos < subtags.length && isVariant(subtags[pos])) variantSubtags.add(subtags[pos++]);