EntityTag implements Cloneable, Serializable, Comparable<EntityTag> { public EntityTag(String tag) { this(tag, false); } EntityTag(String tag);  EntityTag(String tag, boolean weak); private  EntityTag(String tag, boolean weak, boolean wild); static EntityTag parse(String entity_tag); static EntityTag[] parseTags(String entity_tags); static boolean matchesAny(EntityTag tag1, String tags); static boolean matchesAny(EntityTag tag1, String tags, boolean weak); static boolean matchesAny(String tag1, String tags); static boolean matchesAny(String tag1, String tags, boolean weak); static boolean matchesAny(EntityTag tag1, EntityTag[] tags); static boolean matchesAny(EntityTag tag1, EntityTag[] tags, boolean weak); static boolean matches(EntityTag tag1, EntityTag tag2); static boolean matches(String tag1, String tag2); static boolean matches(EntityTag tag1, String tag2); boolean isWild(); String getTag(); boolean isWeak(); String toString(); @Override int hashCode(); @Override boolean equals(Object obj); static EntityTag generate(String... material); static boolean matches(EntityTag etag, String... material); static String toString(EntityTag... tags); static String toString(String... tags); int compareTo(EntityTag o); static final EntityTag WILD; }
@Test public void testEntityTag() throws Exception { String[] tags = {"hello", "\"hello\"", "W/\"hello\"", "*"}; EntityTag[] etags = new EntityTag[tags.length]; for (int n = 0; n < tags.length; n++) { etags[n] = new EntityTag(tags[n]); } assertFalse(etags[0].isWeak()); assertFalse(etags[0].isWild()); assertFalse(etags[1].isWeak()); assertFalse(etags[1].isWild()); assertTrue(etags[2].isWeak()); assertFalse(etags[2].isWild()); assertFalse(etags[3].isWeak()); assertTrue(etags[3].isWild()); assertEquals("hello", etags[0].getTag()); assertEquals("hello", etags[1].getTag()); assertEquals("hello", etags[2].getTag()); assertEquals("*", etags[3].getTag()); assertEquals(tags[1], etags[0].toString()); assertEquals(tags[1], etags[1].toString()); assertEquals(tags[2], etags[2].toString()); assertEquals(tags[3], etags[3].toString()); assertTrue(EntityTag.matches(etags[3], etags[0])); assertTrue(EntityTag.matches(etags[3], etags[1])); assertTrue(EntityTag.matches(etags[3], etags[2])); assertTrue(EntityTag.matches(etags[3], etags[3])); assertTrue(EntityTag.matches(etags[0], etags[1])); assertFalse(EntityTag.matches(etags[0], etags[2])); assertTrue(EntityTag.matchesAny(etags[3], new EntityTag[] {etags[0], etags[1], etags[2]})); assertTrue(EntityTag.matchesAny(etags[0], new EntityTag[] {etags[3], etags[1], etags[2]})); assertTrue(EntityTag.matchesAny(etags[1], new EntityTag[] {etags[0], etags[3], etags[2]})); assertTrue(EntityTag.matchesAny(etags[2], new EntityTag[] {etags[0], etags[1], etags[3]})); java.util.Arrays.sort(etags); assertEquals(tags[3], etags[0].toString()); assertEquals(tags[1], etags[1].toString()); assertEquals(tags[1], etags[2].toString()); assertEquals(tags[2], etags[3].toString()); EntityTag etag = EntityTag.generate("a", "b", "c", "d"); assertEquals("\"e2fc714c4727ee9395f324cd2e7f331f\"", etag.toString()); }