All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.helger.asic.AsicReaderFactory Maven / Gradle / Ivy

Go to download

Generic implementation of ASiC-E archives in accordance with ETSI 102 918 v1.3.1.

There is a newer version: 3.0.1
Show newest version
/**
 * Copyright (C) 2015-2017 difi (www.difi.no)
 * Copyright (C) 2018 Philip Helger (www.helger.com)
 * philip[at]helger[dot]com
 *
 * This Source Code Form is subject to the terms of the
 * Mozilla Public License, v. 2.0.
 * If a copy of the MPL was not distributed
 * with this file, You can obtain one at
 * https://mozilla.org/MPL/2.0/
 */
package com.helger.asic;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;

import javax.annotation.Nonnull;

public class AsicReaderFactory
{
  @Nonnull
  public static AsicReaderFactory newFactory ()
  {
    return newFactory (EMessageDigestAlgorithm.SHA256);
  }

  @Nonnull
  public static AsicReaderFactory newFactory (@Nonnull final ESignatureMethod eSM)
  {
    return newFactory (eSM.getMessageDigestAlgorithm ());
  }

  @Nonnull
  static AsicReaderFactory newFactory (final EMessageDigestAlgorithm eMD)
  {
    return new AsicReaderFactory (eMD);
  }

  private final EMessageDigestAlgorithm m_eMDAlgo;

  protected AsicReaderFactory (@Nonnull final EMessageDigestAlgorithm eMDAlgo)
  {
    m_eMDAlgo = eMDAlgo;
  }

  @Nonnull
  public IAsicReader open (@Nonnull final File aFile) throws IOException
  {
    return open (aFile.toPath ());
  }

  @Nonnull
  public IAsicReader open (@Nonnull final Path aFile) throws IOException
  {
    return open (Files.newInputStream (aFile));
  }

  @Nonnull
  public IAsicReader open (@Nonnull final InputStream aIS)
  {
    return new AsicReaderImpl (m_eMDAlgo, aIS);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy