/** * Sets the extensions. * * <p>See RFC 5646 section 2.2.6. * * @param extensions The extensions. {@code null} if not defined. * * @throws LangTagException If the extension syntax is invalid. */ public void setExtensions(final String... extensions) throws LangTagException { if (extensions == null || extensions.length == 0) { this.extensions = null; return; } this.extensions = new String[extensions.length]; for (int i=0; i < extensions.length; i++) { ensureMaxLength(extensions[i]); if (! isExtension(extensions[i])) throw new LangTagException("Invalid extension subtag"); this.extensions[i] = extensions[i].toLowerCase(); } }