Metadata implements CreativeCommons, Geographic, HttpHeaders,
        Message, ClimateForcast, TIFF, TikaMimeKeys,
        Serializable { public void add(final String name, final String value) { String[] values = metadata.get(name); if (values == null) { set(name, value); } else { metadata.put(name, appendedValues(values, value)); } } Metadata(); boolean isMultiValued(final Property property); boolean isMultiValued(final String name); String[] names(); String get(final String name); String get(Property property); Integer getInt(Property property); Date getDate(Property property); String[] getValues(final Property property); String[] getValues(final String name); void add(final String name, final String value); void add(final Property property, final String value); @SuppressWarnings("unchecked") void setAll(Properties properties); void set(String name, String value); void set(Property property, String value); void set(Property property, String[] values); void set(Property property, int value); void add(Property property, int value); int[] getIntValues(Property property); void set(Property property, double value); void set(Property property, Date date); void set(Property property, Calendar date); void remove(String name); int size(); int hashCode(); boolean equals(Object o); String toString();  }
@Test public void testAdd() { String[] values = null; Metadata meta = new Metadata(); values = meta.getValues(CONTENTTYPE); assertEquals(0, values.length); meta.add(CONTENTTYPE, "value1"); values = meta.getValues(CONTENTTYPE); assertEquals(1, values.length); assertEquals("value1", values[0]); meta.add(CONTENTTYPE, "value2"); values = meta.getValues(CONTENTTYPE); assertEquals(2, values.length); assertEquals("value1", values[0]); assertEquals("value2", values[1]); meta.add(CONTENTTYPE, "value1"); values = meta.getValues(CONTENTTYPE); assertEquals(3, values.length); assertEquals("value1", values[0]); assertEquals("value2", values[1]); assertEquals("value1", values[2]); Property nonMultiValued = Property.internalText("nonMultiValued"); meta.add(nonMultiValued, "value1"); try { meta.add(nonMultiValued, "value2"); fail("add should fail on the second call of a non-multi valued item"); } catch (PropertyTypeException e) { } }