package org.archstudio.xarchadt.core.internal; import java.util.Collections; import java.util.Map; import org.archstudio.xarchadt.IXArchADTPackageMetadata; import org.archstudio.xarchadt.IXArchADTTypeMetadata; import com.google.common.base.Function; import com.google.common.collect.Maps; public class BasicXArchADTPackageMetadata implements IXArchADTPackageMetadata { private final String nsURI; private final Map<String, IXArchADTTypeMetadata> typeMetadata; public BasicXArchADTPackageMetadata(String nsURI, Iterable<IXArchADTTypeMetadata> factoryElementMetadata) { this.nsURI = nsURI; this.typeMetadata = Collections.unmodifiableMap(Maps.uniqueIndex(factoryElementMetadata, new Function<IXArchADTTypeMetadata, String>() { @Override public String apply(IXArchADTTypeMetadata input) { return input.getTypeName(); } })); } @Override public String getNsURI() { return nsURI; } @Override public Map<String, IXArchADTTypeMetadata> getTypeMetadata() { return typeMetadata; } }