Class BeanUtils


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

      • 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
      • 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 ITransferableClass<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
      • 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