Subtag implements Serializable, Cloneable,
		Comparable<Subtag> { public Subtag clone() { try { Subtag tag = (Subtag) super.clone(); if (getNext() != null) tag.setNext(getNext().clone()); return tag; } catch (CloneNotSupportedException e) { throw new AssertionError(e); } } Subtag(Language language);  Subtag(Script script);  Subtag(Region region);  Subtag(Variant variant);  Subtag(Extlang extlang);  Subtag(Singleton singleton);  Subtag(Type type, String name);   Subtag();  Subtag(Type type, String name, Subtag prev);   Subtag(Type type, String name, Subtag prev, Subtag next); Type getType(); String getName(); Subtag getPrevious(); Subtag getNext(); String toString(); int hashCode(); boolean equals(Object obj); Subtag clone(); boolean isDeprecated(); @SuppressWarnings("unchecked") T getEnum(); boolean isValid(); Subtag canonicalize(); static Subtag newWildcard(); int compareTo(Subtag o);  }
@Test public void testClone() { Subtag langSubtag = new Subtag(Language.DE); Subtag regionSubtag = new Subtag(Region.DE); langSubtag.setNext(regionSubtag); Subtag clone = langSubtag.clone(); assertEquals(langSubtag, clone); assertNotSame(langSubtag, clone); assertEquals(regionSubtag, clone.getNext()); assertNotSame(regionSubtag, clone.getNext()); }