Class EntityImportHelper

java.lang.Object
de.xima.fc.importer.util.EntityImportHelper

public class EntityImportHelper extends Object
Helper class for importing entities
Author:
XIMA MEDIA GmbH
  • Method Details

    • addValueToEntityField

      public static <T extends de.xima.cmn.dao.interfaces.IEntity<Long>> T addValueToEntityField(T entity, String fieldDescriptor, Object value) throws Exception
      Adds/sets the given value to the field property of the entity.
      Parameters:
      entity - IEntity entity for which the field value should be added/set
      fieldDescriptor - String descriptor of the field to set e.g 'bedingung#folgeAktion'
      value - Object to set for the field or add to the field (if list)
      Throws:
      Exception - on errors during setting the value
    • addValueToEntityField

      public static <T extends de.xima.cmn.dao.interfaces.IEntity<Long>> T addValueToEntityField(IEntityContext ec, T entity, String fieldDescriptor, Object value) throws Exception
      Adds/sets the given value to the field property of the entity. The entity will be reloaded from DAO if possible
      Parameters:
      ec - IEntityContext to use
      entity - IEntity entity for which the field value should be added/set
      fieldDescriptor - String descriptor of the field to set e.g 'bedingung#folgeAktion'
      value - Object to set for the field or add to the field (if list)
      Throws:
      Exception - on errors during setting the value
    • setEntityField

      public static void setEntityField(de.xima.cmn.dao.interfaces.IEntity<Long> entity, String fieldDescriptor, Object value) throws IllegalArgumentException, IllegalAccessException
      Sets the field property of the entity with the given value
      Parameters:
      entity - IEntity entity for which the field should be set
      fieldDescriptor - String descriptor of the field to set e.g 'bedingung#folgeAktion'
      value - Object to set for the field
      Throws:
      IllegalAccessException - When the field is inaccssible.
      IllegalArgumentException - When the type of the field is incompatible with the given value.
    • getEntityField

      public static final Field getEntityField(Class<?> clazz, String fieldName)
      Gets the class field by name. If none is found and the class has a superclass, this method will recursively call itself with the superclass
      Parameters:
      clazz - Class to check for the field name
      fieldName - String field name to look for
      Returns:
      Field of the class or null if none was found
    • getUniqueProjectTitle

      public static final String getUniqueProjectTitle(IEntityContext ec, Projekt project, boolean excludeSelf) throws LimitExceededException
      Gets a unique project title for the given project
      Parameters:
      ec - IEntityContext to be used
      project - Projekt to get unique title for
      excludeSelf - Boolean whether to include this project's title (based on UUID)
      Returns:
      String unique project title
      Throws:
      LimitExceededException
    • getUniqueProjectAlias

      public static final String getUniqueProjectAlias(IEntityContext ec, Projekt project, boolean excludeSelf) throws LimitExceededException
      Throws:
      LimitExceededException
    • getUniqueEntityName

      public static final <T extends INameProviding & de.xima.cmn.dao.interfaces.IEntity<Long>> String getUniqueEntityName(IEntityContext ec, T entity, T excludeEntity)
      Gets a unique entity name for the given entity
      Type Parameters:
      T - type of entity
      Parameters:
      ec - IEntityContext to be used
      entity - to get unique name for
      excludeEntity - to be excluded in search for a unique name
      Returns:
      String unique entity name
    • checkEntityNameExists

      public static final boolean checkEntityNameExists(IEntityContext ec, String name, de.xima.cmn.dao.interfaces.IEntity<Long> entity, de.xima.cmn.dao.interfaces.IEntity<Long> excludeEntity)
    • isEntityNameExists

      public static final boolean isEntityNameExists(IEntityContext ec, String name, de.xima.cmn.dao.interfaces.IEntity<Long> entity, boolean excludeSelf)
      Checks whether or not the name of the entity is used by any other entity in its context
      Parameters:
      ec - IEntityContext to be used
      name - String to check for
      entity - IEntity to check for
      excludeSelf - Boolean whether to include this entity's name (based on UUID if existing, otherwise based on ID)
      Returns:
      true if another entity has the given entity's name within its context. false otherwise
    • isProjectTitleExists

      public static final boolean isProjectTitleExists(IEntityContext ec, String title, Projekt project, boolean excludeSelf)
      Checks whether or not the given title is used by any other project of this client
      Parameters:
      ec - IEntityContext to be used
      title - String to check for
      project - Projekt to check for
      excludeSelf - Boolean whether to include this project's title (based on UUID)
      Returns:
      true if another entity has the given entity's name within its context. false otherwise
    • getExportMetaData

      public static final ExportMetadata getExportMetaData(InputStream is) throws Exception
      Throws:
      Exception
    • getDisplayName

      public static final String getDisplayName(de.xima.cmn.dao.interfaces.IEntity<Long> entity, Locale locale)
      Returns a String representation of the entity for displaying to the user
      Parameters:
      entity - IEntity to get a display name for
      locale - Locale used for getting compound display names
      Returns:
      String name representing the entity for messaging
    • getDisplayName

      public static final String getDisplayName(de.xima.cmn.dao.interfaces.IEntity<Long> entity)
      Returns a String representation of the entity for displaying to the user
      Parameters:
      entity - IEntity to get a display name for
      Returns:
      String name representing the entity for messaging
    • compareByEntityClass

      public static final int compareByEntityClass(Object o1, Object o2)
    • isIdentical

      public static final boolean isIdentical(de.xima.cmn.dao.interfaces.IEntity<Long> e1, de.xima.cmn.dao.interfaces.IEntity<Long> e2)
      Compares to entities and checks if they are "identical"
      Parameters:
      e1 - IEntity
      e2 - IEntity
      Returns:
      Boolean
    • getUserGroups

      public static final List<BenutzerGruppe> getUserGroups(IEntityContext ec, List<UUID> uuids, Mandant client, List<IEntityImportConfig<?>> importConfigs)
      Gets a list of user groups in the given client with the given uuids
      Parameters:
      ec - IEntityContext to use
      uuids - List of UUIDs to look for
      client - Mandant to look in
      importConfigs - List of import configs used for getting the names of the user groups
      Returns:
      List of BenutzerGruppe
    • removeDependency

      public static final IEntityDependency removeDependency(IEntityImportConfig<?> config, String fieldDescriptor)
      Removes the first dependency from the given config with the given field descriptor
      Parameters:
      config - IEntityImportConfig config to remove dependency from
      fieldDescriptor - String describing the dependency
      Returns:
      IEntityDependency that has been removed
    • removeConfig

      public static final void removeConfig(UUID uuid, Class<? extends de.xima.cmn.dao.interfaces.IEntity<Long>> clazz, List<IEntityImportConfig<?>> configs)
    • updateInboxRef

      @Deprecated public static final void updateInboxRef(IInboxDependent proc, Postfach inbox)
      Deprecated.
      Sets the inbox reference in the given inbox dependent processing to the given inbox. An invalid refernce will be set if the inbox is null
      Parameters:
      proc - IInboxDependent processing to set reference for
      inbox - Postfach to set reference to
    • getEntityName

      public static final <T extends de.xima.cmn.dao.interfaces.IEntity<Long>> String getEntityName(UUID uuid, Class<T> entityClass, List<IEntityImportConfig<?>> importConfigs)
      Looks for entity with the given uuid and class in the list of import configs and returns its name if there is any.
      Type Parameters:
      T - the entity-class-type
      Parameters:
      uuid - UUID of the entity
      entityClass - Class of the entity
      importConfigs - List of import configs to look through
      Returns:
      the name of the entity or null if none was found
    • getEntity

      public static final de.xima.cmn.dao.interfaces.IEntity<Long> getEntity(UUID uuid, Class<? extends de.xima.cmn.dao.interfaces.IEntity<Long>> entityClass, List<IEntityImportConfig<?>> importConfigs)
      Looks for entity with the given uuid and class in the list of import configs and returns it.
      Parameters:
      uuid - UUID of the entity
      entityClass - Class of the entity
      importConfigs - List of import configs to look through
      Returns:
      IEntity entity or null if none was found