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

at.austriapro.ebinterface.ubl.from.IToEbinterfaceSettings Maven / Gradle / Ivy

There is a newer version: 5.2.7
Show newest version
/*
 * Copyright (c) 2010-2015 Bundesrechenzentrum GmbH - www.brz.gv.at
 * Copyright (c) 2015-2024 AUSTRIAPRO - www.austriapro.at
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package at.austriapro.ebinterface.ubl.from;

import java.io.Serializable;

import javax.annotation.CheckForSigned;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;

import com.helger.commons.annotation.Nonempty;

/**
 * Interface for the settings for the conversion from UBL to ebInterface.
 *
 * @author Philip Helger
 */
public interface IToEbinterfaceSettings extends Serializable
{
  /**
   * @return true if the element "UBLVersionID" is mandatory,
   *         false if not.
   */
  boolean isUBLVersionIDMandatory ();

  /**
   * @return true if the element "ProfileID" is mandatory,
   *         false if not.
   */
  boolean isUBLProfileIDMandatory ();

  /**
   * @return The custom process ID resolver to be used. Never null.
   */
  @Nonnull
  IProfileIDResolver getProfileIDResolver ();

  /**
   * @return true if the order reference ID is mandatory,
   *         false if not.
   */
  boolean isOrderReferenceIDMandatory ();

  /**
   * @return The maximum length of the order reference or a value ≤ 0 if no
   *         length restrictions are defined.
   * @see #hasOrderReferenceMaxLength()
   */
  @CheckForSigned
  int getOrderReferenceMaxLength ();

  default boolean hasOrderReferenceMaxLength ()
  {
    return getOrderReferenceMaxLength () > 0;
  }

  /**
   * @return true if the delivery date is mandatory,
   *         false if not.
   */
  boolean isDeliveryDateMandatory ();

  /**
   * @return true if the supplier email address should be enforced,
   *         if it is missing.
   * @see #getEnforcedSupplierEmailAddress()
   */
  boolean isEnforceSupplierEmailAddress ();

  /**
   * @return The email address to be used when
   *         {@link #isEnforceSupplierEmailAddress()} is true and
   *         an email address is missing in the invoice.
   */
  @Nonnull
  @Nonempty
  String getEnforcedSupplierEmailAddress ();

  /**
   * @return The fallback "BillersInvoiceRecipientID" for ebInterface 4.0 only.
   */
  @Nullable
  String getFallbackBillersInvoiceRecipientID ();

  /**
   * @return true if invalid line numbers (row index < 1) leads
   *         to an error, false if not.
   */
  boolean isErrorOnPositionNumber ();

  /**
   * @return true if the payment method is mandatory,
   *         false if not.
   */
  boolean isInvoicePaymentMethodMandatory ();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy