/*
 * $Id$
 *
 * Copyright (c) Siemens AG 2008 
 *           (c) Universität Paderborn 2008 
 * Licensed under EUPL 1.1. 
 * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
 * THIS SOFTWARE OR ITS DERIVATIVES.
 *
 * $Log$
 * Revision 1.8  2007/02/13 15:42:22  lawern
 * Fehlende Konstruktoren ergänzt.
 *
 * Revision 1.7  2007/02/13 12:28:38  lawern
 * Delegator-Konstruktor-Methoden nur noch friendly oder private.
 *
 * Revision 1.6  2007/02/13 12:24:34  lawern
 * Public-Methode auf protected gesetzt.
 *
 * Revision 1.5  2007/02/06 08:54:34  lawern
 * Dynamische Attribute zu Delegator-Objekten gemacht + getDynaAttributes()-Methoden implementiert.
 *
 * Revision 1.4  2007/01/12 15:15:43  lawern
 * Bugfixing
 *
 * Revision 1.3  2007/01/12 12:56:55  korowa
 * +neuer Konstruktor von VKCDynUserAttributeDAO
 *
 * Revision 1.2  2006/09/08 11:28:39  korowa
 * *** empty log message ***
 *
 * Revision 1.1  2006/09/01 11:06:00  korowa
 * *** empty log message ***
 *

 */
package vkc.external;

import vkc.db.entities.VKCDynUserAttribute;

/**
 * Klasse kapselt Id des Users und Attributes, Schlüssel und Wert eines
 * dynamischen Attributes, Zugriffrechte des Users
 * 
 * 
 */
public class VKCDynUserAttributeDAO {

    private VKCDynUserAttribute intUserAttribute;
	
	
	/**
     * Konstruktor zum Anlegen eines neuen DynUserAttribute-Objekts aus einem regulären
     * VKC DynUserAttribute-Objekt
     * 
     * @param intUserAttribute
	 */
    VKCDynUserAttributeDAO(VKCDynUserAttribute intUserAttribute){
		this.intUserAttribute = intUserAttribute;
	}
    
    /**
     * 
     * @param name
     *      Name des dynamischen Attributes
     * @param value
     *      Wert des dynamischen Attributes
     * @param userId
     *      Id des Benutzers für den das Attribut erstellt werden soll
     * @param autorization
     *      0 = der Benutzer darf das Attribut weder lesen noch schreiben
     *      1 = der Benutzer darf das Attribut lesen
     *      2 = der Benutzer darf das Attribut lesen und den Wert überschreiben
     */
    public VKCDynUserAttributeDAO(String name, String value,  Integer userId, Integer autorization){
        intUserAttribute = new VKCDynUserAttribute();
        intUserAttribute.setName(name);
        intUserAttribute.setValue(value);     
        intUserAttribute.setAutorization(autorization);   
        intUserAttribute.setUserId(userId);
    }

	/**
	 * Liefert einen Integer Wert, der die Berechtigung des Benutzers das Attribut
	 * zu sehen oder zu editieren widerspiegelt
	 * 
	 * @return Integer autorization
	 */
	public Integer getAutorization() {
		return intUserAttribute.getAutorization();
	}

	/**
	 * Setzt die Rechte, die der Benutzers am Attribut hat.
	 * 
	 * @param autorization
	 * 		0 = der Benutzer darf das Attribut weder lesen noch schreiben
	 * 		1 = der Benutzer darf das Attribut lesen
	 * 		2 = der Benutzer darf das Attribut lesen und den Wert überschreiben
	 */

	public void setAutorization(Integer autorization) {
        intUserAttribute.setAutorization(autorization);
	}

	/**
	 * Liefert den Namen dieses Attributes zurück
	 * 
	 * @return Der Name
	 */
	public String getName() {
		return intUserAttribute.getName();
	}

	/**
	 * Setzt den Namen dieses Attributes
	 * 
	 * @param name
	 *            Neuer Name
	 */
	public void setName(String name) {
        intUserAttribute.setName(name);
	}

	/**
	 * Liefert den Wert dieses Attributes
	 * 
	 * @return Der Wert
	 */
	public String getValue() {
		return intUserAttribute.getValue();
	}

	/**
	 * Setzt den Wert dieses Attributes
	 * 
	 * @param value
	 *            Der Neue Wert
	 */
	public void setValue(String value) {
        intUserAttribute.setValue(value);
	}

	/**
	 * Liefert die Id des Users, für den dieser Attribut erstellt wurde
	 * 
	 * @return Der Wert
	 */
	public Integer getUserId() {
		return intUserAttribute.getUserId();
	}

	/**
	 * Setzt die Id des Users, für den dieser Attribut erstellt wurde
	 * 
	 * @param userId
	 *            die Id des Users
	 */
	public void setUserId(Integer userId) {
        intUserAttribute.setUserId(userId);
	}

	/**
	 * Liefert die Id dieses Attributes
	 * 
	 * @return die Id
	 */
	public Integer getDynaAttrId() {
		return intUserAttribute.getDynaAttrId();
	}
}