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

com.helger.pdflayout.base.IPLObject Maven / Gradle / Ivy

There is a newer version: 7.3.5
Show newest version
package com.helger.pdflayout.base;

import javax.annotation.Nonnull;

import com.helger.commons.annotation.Nonempty;
import com.helger.commons.id.IHasID;
import com.helger.commons.traits.IGenericImplTrait;

/**
 * Base interface for a PDF layout object
 *
 * @author Philip Helger
 * @param 
 *        Implementation type
 */
public interface IPLObject > extends IHasID , IGenericImplTrait 
{
  /**
   * @return The debug ID of this element. Neither null nor empty.
   *         The debug ID is usually automatically created automatically from
   *         the ID.
   */
  @Nonnull
  @Nonempty
  String getDebugID ();

  /**
   * @return true if this element is splittable, false
   *         otherwise.
   */
  default boolean isSplittable ()
  {
    return this instanceof IPLSplittableObject ;
  }

  @Nonnull
  default IPLSplittableObject  getAsSplittable ()
  {
    return (IPLSplittableObject ) this;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy