SubtagSet implements Serializable, Cloneable, Iterable<Subtag>,
		Comparable<SubtagSet> { public boolean isValid() { for (Subtag subtag : this) if (!subtag.isValid()) return false; return true; } protected  SubtagSet(Subtag primary); String toString(); Iterator<Subtag> iterator(); boolean contains(Subtag subtag); boolean contains(String tag); boolean contains(String tag, Subtag.Type type); int length(); boolean isValid(); @SuppressWarnings("unused") int count(); Subtag get(int index); int hashCode(); boolean equals(Object obj); Subtag[] toArray(); List<Subtag> asList(); int compareTo(SubtagSet o);  }
@Test public void testIsValid() { Subtag lang = new Subtag(Language.EN); Subtag region = new Subtag(Region.US); lang.setNext(region); ConcreteSubtagSet validSet = new ConcreteSubtagSet(lang); Subtag lang2 = new Subtag(Language.EN); Subtag invalidSubtag = new Subtag(Type.REGION, "ABCD"); lang2.setNext(invalidSubtag); ConcreteSubtagSet invalidSet = new ConcreteSubtagSet(lang2); assertTrue(validSet.isValid()); assertFalse(invalidSet.isValid()); }