Package com.bhle.access.convert

Source Code of com.bhle.access.convert.ConverterManager

package com.bhle.access.convert;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

import com.bhle.access.domain.DatastreamWrapper;
import com.bhle.access.domain.Derivative;
import com.bhle.access.domain.DigitalObjectWrapper;

public class ConverterManager {

  private static final Logger logger = LoggerFactory
      .getLogger(ConverterManager.class);

  public static List<DatastreamConverter> converters;

  @Autowired
  public void setConverters(List<DatastreamConverter> convertors) {
    if (ConverterManager.converters == null) {
      ConverterManager.converters = convertors;
    } else {
      ConverterManager.converters.addAll(convertors);
    }
  }

  public static Derivative[] derive(DatastreamWrapper datastream) {
    List<Derivative> results = new ArrayList<Derivative>();
    for (DatastreamConverter convertor : converters) {
      Derivative derivative = convertor.derive(datastream);
      if (derivative != null) {
        logger.info("Convert " + datastream.getDigitalObject().getPid()
            + "/" + convertor.getDatastreamId() + " to "
            + convertor.getDerivativeId());
        results.add(derivative);
      }
    }
    return results.toArray(new Derivative[] {});
  }

  public static Derivative[] derive(DigitalObjectWrapper object) {
    List<Derivative> results = new ArrayList<Derivative>();
    for (DatastreamWrapper datastreamWrapper : object.getDatastreams()) {
      Derivative[] derivatives = derive(datastreamWrapper);
      if (derivatives.length == 0) {
        datastreamWrapper.close();
      } else {
        results.addAll(Arrays.asList(derivatives));
      }
    }
    return results.toArray(new Derivative[] {});
  }

  public static Derivative[] deriveInformation(DatastreamWrapper datastream) {
    List<Derivative> results = new ArrayList<Derivative>();
    for (DatastreamConverter convertor : converters) {
      Derivative derivative = convertor.deriveInformation(datastream);
      if (derivative != null) {
        results.add(derivative);
      }
    }
    return results.toArray(new Derivative[] {});
  }

  public static String getMimeType(String dsid) {
    for (DatastreamConverter convertor : converters) {
      if (convertor.getDerivativeId().equalsIgnoreCase(dsid)) {
        return convertor.getDerivativeMimeType();
      }
    }
    return null;
  }

  public static String getSuffix(String dsid) {
    for (DatastreamConverter convertor : converters) {
      if (convertor.getDerivativeId().equalsIgnoreCase(dsid)) {
        return convertor.getDerivativeSuffix();
      }
    }
    return null;
  }

}
TOP

Related Classes of com.bhle.access.convert.ConverterManager

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.