Class BeanUtils

java.lang.Object
de.xima.fc.web.common.utils.BeanUtils

public final class BeanUtils extends Object
Hilfsklasse für das (generische) Setzen von Eigenschaften (speziell von Entitäten).
Author:
XIMA MEDIA GmbH
  • Field Details

  • Method Details

    • setProp

      public static void setProp(UserContext uc, Object bean, String propName, Object propValue) throws ValidationException, PropertyException
      Setzt folgendes voraus, wenn es sich bei den zu setzenden Properties um eine oder mehrere Entitäten-IDs handelt:
      1. ein passendes DAO mit dem Namen "[großgeschriebener Property- oder Collection-Parametertyp]_DAO" existiert als statisches Feld in DaoProvider
      2. propName muss dem Muster "[Name einfache Eigenschaft].id" oder "[Name Collection-basierte Eigenschaft].ids" entsprechen, z.B. Benutzergruppen eines Benutzers: "benutzerGruppen_ids"
      3. propValue muss die ID-Informationen enthalten (eine ID oder mehrere IDs, durch Komma getrennt)
      4. ist die zu setzende Property Collection-basiert muss der Typ parametrisiert sein ( Set<BenutzerGruppe> statt Set)
      Parameters:
      uc - TODO
      bean - Zielobjekt (i.A. eine Entitäteninstanz)
      propName - Name der zu setzenden Eigenschaft
      propValue - neuer Wert der zu setzenden Eigenschaft
      Throws:
      ValidationException - on validation errors
      PropertyException - on property errors
    • getMatcher

      public static Matcher getMatcher(String key)
      Überprüft ob der Schlüssel auf .id oder .ids endet
      Parameters:
      key - Schlüssel bzw. Eingenschaftsname der Bean
      Returns:
      Match-Ergebnis
    • getProp

      public static Map<String,Object> getProp(Serializable bean, List<BeanAttribute> props) throws PropertyException
      Throws:
      PropertyException
    • vdList

      public static ArrayList<ValueDescriptor> vdList(Serializable bean, String[] propNames) throws PropertyException
      Baut eine Liste von ValueDescriptoren. Die Bean wird anhand der übergebenen Eigenschaftsnamen durchlaufen und als ValueDescriptor (enthält PropertyName, PropertyValue und Typ in diesem Fall nur String) der Liste hinzugefügt.
      Parameters:
      bean - die Instanziiert werden soll
      propNames - String[] mit Property-Namen, die ausgewertet sollen werden
      Returns:
      Liste von ValueDescriptors.
      Throws:
      PropertyException - wenn ein Fehler in der Verarbeitung des Auslesens auftritt
    • findModelClass

      public static <E extends ITransferable> Class<E> findModelClass(Object bean, String entityPropName) throws PropertyException
      Liefert die konkrete Klasse, welche die gefunden getter-Methode als Rückgabewert hat.
      Parameters:
      bean - Objekt (Entität)
      entityPropName - Eingenschaft der Eintität
      Returns:
      Rückgabetyp der getter-Methode aus der Bean
      Throws:
      PropertyException - on property errors
    • getEntity

      public static ITransferableEntity getEntity(UserContext uc, String entityName, String id)
      Generisches Auslesen der Entität anhand der ID und dem Namen der Entität.
      Parameters:
      uc - Wrapper für EntityManager und andere Zusatzinformationen
      entityName - Name der Entität
      id - ID
      Returns:
      Entitätsobjekt anhand der übergebenen ID und des Entitätsnamen auslesen
    • getGenericClassFromList

      public static Class<?> getGenericClassFromList(Object bean, String propName) throws PatternNotFoundException, ClassNotFoundException, SecurityException, NoSuchMethodException
      Throws:
      PatternNotFoundException
      ClassNotFoundException
      SecurityException
      NoSuchMethodException
    • getCollectionObject

      public static Object getCollectionObject(List<Object> entList, Class<?> cl) throws IsNotAssignableException
      Throws:
      IsNotAssignableException
    • getOutgoingAttributes

      public static ArrayList<BeanAttribute> getOutgoingAttributes(Class<? extends ITransferable> entityClass)
      Diese Methode liefert nur die Attribute, welche mit der Annotation TransferAttribute versehen sind
      Parameters:
      entityClass - class of the entity
      Returns:
      Liste von Attribut-Werten zu der aktuellen Entität
    • getIncomingAttributes

      public static String[] getIncomingAttributes(Class<? extends ITransferable> entityClass)
      Diese Methode liefert nur die Attribute, welche mit der Annotation TransferAttribute versehen sind und incoming auf true (Defaultwert) gesetzt ist. Das Annotation-Feld TransferAttribute#incoming() liefert hierbei den Wert ob dieses Feld vom Client empfangen werden soll. Felder vom Typ ITransferableEntity oder Collection mit GenericTyp ITransferableEntity werden hier gesondert behandelt, da hier die Notation "attr".id bzw "attr.ids" vorgeschrieben ist.
      Parameters:
      entityClass - class of the entity
      Returns:
      Liste von Attribut-Werten zu der aktuellen Entität
    • matchesPropertyCollectionTypeParameter

      public static boolean matchesPropertyCollectionTypeParameter(Object value, Object bean, String propName, Class<?> targetType)
      Diese Methode prüft ob ein Klassenattribut eine Liste ist und ob der generische Type dieser Liste einem übergebenem Typen entspricht
      Parameters:
      value - Objekt das Klassenattribut, dessen Typ auf Collection geprüft wird
      bean - die Klasseninstanz deren Attribut (value) geprüft werden soll
      propName - Name des zu überprüfenden Klassenattributes
      targetType - der Zieltyp auf den geprüft werden soll ob die Collection von diesem generischen Typ ist
      Returns:
      true wenn das Attribut eine Collection ist und vom entsprechenden Zieltyp, ansonsten false
    • getGenericTypeClass

      public static Class<?> getGenericTypeClass(Object bean, String propName)
      Diese Methode läd den generischen Typ eines Attributes
      Parameters:
      bean - Objekt mit einem Attribut von dem der generische Typ ermittelt werden soll.
      propName - der Attributname der das Attribtut beschreibt dessen generischer Typ ermittelt werden soll
      Returns:
      Klasse die den generischen Typ beschreibt oder null wenn kein Typ ermittelt werden konnte
    • correctlyTypedDescriptor

      public static ValueDescriptor correctlyTypedDescriptor(Object bean, String propName, Object propValue) throws PropertyException, ValidationException
      Throws:
      PropertyException
      ValidationException