Package com.bhle.access.oai

Source Code of com.bhle.access.oai.MetadataFormatProviderImpl

package com.bhle.access.oai;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import proai.MetadataFormat;

public class MetadataFormatProviderImpl implements MetadataFormatProvider {

  private static String METADATAFORMAT_PREFIX = "metadataFormat.";
  private static String METADATAFORMAT_PREFIX_SUFFIX = "prefix";
  private static String METADATAFORMAT_DATASTREAM_SUFFIX = "datastream";
  private static String METADATAFORMAT_NAMESPACE_SUFFIX = "namespace";
  private static String METADATAFORMAT_SCHEMALOCATION_SUFFIX = "schemaLocation";

  private Properties props;
 
  public MetadataFormatProviderImpl(Properties props) {
    super();
    this.props = props;
  }

  @Override
  public Collection<MetadataFormat> getMetadataFormatCollection() {
    Map<String, Map<String, String>> metadataFormatMap = new HashMap<String, Map<String, String>>();

    for (Object keyObject : props.keySet()) {
      String key = (String) keyObject;
      if (key.startsWith(METADATAFORMAT_PREFIX)) {
        String[] parts = key.split("\\.");
        String metadataFormatKey = parts[1];
        String suffix = parts[2];
        Map<String, String> subMap = metadataFormatMap
            .get(metadataFormatKey);
        if (subMap == null) {
          subMap = new HashMap<String, String>();
          metadataFormatMap.put(metadataFormatKey, subMap);
        }
        subMap.put(suffix, props.getProperty(key));
      }
    }

    Collection<MetadataFormat> result = new ArrayList<MetadataFormat>();
    for (String key : metadataFormatMap.keySet()) {
      Map<String, String> metadataFormatSubMap = metadataFormatMap
          .get(key);
      MetadataFormat metadataFormat = new MetadataFormatImpl(
          metadataFormatSubMap.get(METADATAFORMAT_PREFIX_SUFFIX),
          metadataFormatSubMap.get(METADATAFORMAT_DATASTREAM_SUFFIX),
          metadataFormatSubMap.get(METADATAFORMAT_NAMESPACE_SUFFIX),
          metadataFormatSubMap
              .get(METADATAFORMAT_SCHEMALOCATION_SUFFIX));
      result.add(metadataFormat);
    }

    return result;
  }
}
TOP

Related Classes of com.bhle.access.oai.MetadataFormatProviderImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.