Metadata implements CreativeCommons, Geographic, HttpHeaders,
        Message, ClimateForcast, TIFF, TikaMimeKeys,
        Serializable { public String get(final String name) { String[] values = metadata.get(name); if (values == null) { return null; } else { return values[0]; } } 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 testGet() { Metadata meta = new Metadata(); assertNull(meta.get("a-name")); meta.add("a-name", "value-1"); assertEquals("value-1", meta.get("a-name")); meta.add("a-name", "value-2"); assertEquals("value-1", meta.get("a-name")); }
@Test public void testMultithreadedDates() throws Exception { int numThreads = 10; ExecutorService executorService = Executors.newFixedThreadPool(numThreads); ExecutorCompletionService<Integer> executorCompletionService = new ExecutorCompletionService<Integer>(executorService); for (int i = 0; i < numThreads; i++) { executorCompletionService.submit(new MetadataDateAdder()); } int finished = 0; while (finished < numThreads) { Future<Integer> future = executorCompletionService.take(); if (future != null && future.isDone()) { Integer retVal = future.get(); finished++; } } }