/**
* Copyright (C) 2012 BonitaSoft S.A.
* BonitaSoft, 31 rue Gustave Eiffel - 38000 Grenoble
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2.0 of the License, or
* (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.bonitasoft.web.rest.model.identity;
import java.util.Date;
import org.bonitasoft.web.toolkit.client.data.APIID;
import org.bonitasoft.web.toolkit.client.data.item.IItem;
import org.bonitasoft.web.toolkit.client.data.item.Item;
import org.bonitasoft.web.toolkit.client.data.item.ItemDefinition;
import org.bonitasoft.web.toolkit.client.data.item.template.ItemHasCreator;
import org.bonitasoft.web.toolkit.client.data.item.template.ItemHasIcon;
import org.bonitasoft.web.toolkit.client.data.item.template.ItemHasLastUpdateDate;
import org.bonitasoft.web.toolkit.client.data.item.template.ItemHasUniqueId;
/**
* @author Séverin Moussel
*/
public class UserItem extends Item implements ItemHasUniqueId, ItemHasLastUpdateDate, ItemHasCreator, ItemHasIcon {
public static final String DEFAULT_USER_ICON = "icons/default/icon_user.png";
public static final String ATTRIBUTE_FIRSTNAME = "firstname";
public static final String ATTRIBUTE_LASTNAME = "lastname";
public static final String ATTRIBUTE_PASSWORD = "password";
public static final String ATTRIBUTE_USERNAME = "userName";
public static final String ATTRIBUTE_MANAGER_ID = "manager_id";
public static final String ATTRIBUTE_LAST_CONNECTION_DATE = "last_connection";
public static final String ATTRIBUTE_TITLE = "title";
public static final String ATTRIBUTE_JOB_TITLE = "job_title";
public static final String ATTRIBUTE_STATE = "user_state";
public static final String ATTRIBUTE_ENABLED = "enabled";
public UserItem() {
super();
}
public UserItem(final IItem item) {
super(item);
}
// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ATTRIBUTES VALUES
// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public static final String VALUE_ACTIVATION_STATE_DISABLED = "DISABLED";
public static final String VALUE_ACTIVATION_STATE_ENABLED = "ENABLED";
// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FILTERS
// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public static final String FILTER_ROLE_ID = "role_id";
public static final String FILTER_GROUP_ID = "group_id";
public static final String FILTER_PROFILE_ID = "profile_id";
public static final String FILTER_INDIRECT_PROFILE_ID = "indirect_profile_id";
public static final String FILTER_PROCESS_ID = "process_id";
public static final String FILTER_HUMAN_TASK_ID = "task_id";
// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// COUNTERS
// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public static final String COUNTER_OPEN_TASKS = "open_tasks";
public static final String COUNTER_OVERDUE_TASKS = "overdue_tasks";
// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// GETTERS AND SETTERS
// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// GETTERS
public String getFirstName() {
return this.getAttributeValue(ATTRIBUTE_FIRSTNAME);
}
public String getLastName() {
return this.getAttributeValue(ATTRIBUTE_LASTNAME);
}
public String getPassword() {
return this.getAttributeValue(ATTRIBUTE_PASSWORD);
}
public String getUserName() {
return this.getAttributeValue(ATTRIBUTE_USERNAME);
}
public APIID getManagerId() {
return APIID.makeAPIID(this.getAttributeValue(ATTRIBUTE_MANAGER_ID));
}
@Override
public String getIcon() {
return this.getAttributeValue(ATTRIBUTE_ICON);
}
@Override
public Date getCreationDate() {
return this.getAttributeValueAsDate(ATTRIBUTE_CREATION_DATE);
}
@Override
public APIID getCreatedByUserId() {
return APIID.makeAPIID(this.getAttributeValue(ATTRIBUTE_CREATED_BY_USER_ID));
}
@Override
public Date getLastUpdateDate() {
return this.getAttributeValueAsDate(ATTRIBUTE_LAST_UPDATE_DATE);
}
public String getState() {
return this.getAttributeValue(ATTRIBUTE_STATE);
}
public String getLastConnectionDate() {
return this.getAttributeValue(ATTRIBUTE_LAST_CONNECTION_DATE);
}
public String getTitle() {
return this.getAttributeValue(ATTRIBUTE_TITLE);
}
public String getJobTitle() {
return this.getAttributeValue(ATTRIBUTE_JOB_TITLE);
}
public boolean isEnabled() {
return "true".equals(getAttributeValue(ATTRIBUTE_ENABLED));
}
public void setEnabled(boolean enabled) {
setAttribute(ATTRIBUTE_ENABLED, String.valueOf(enabled));
}
// SETTERS
@Override
public void setId(final String id) {
this.setAttribute("id", id);
}
@Override
public void setId(final Long id) {
this.setAttribute("id", id.toString());
}
public void setFirstName(final String firstName) {
this.setAttribute(ATTRIBUTE_FIRSTNAME, firstName);
}
public void setLastName(final String lastName) {
this.setAttribute(ATTRIBUTE_LASTNAME, lastName);
}
public void setPassword(final String password) {
this.setAttribute(ATTRIBUTE_PASSWORD, password);
}
public void setUserName(final String userName) {
this.setAttribute(ATTRIBUTE_USERNAME, userName);
}
public void setManagerId(final String id) {
this.setAttribute(ATTRIBUTE_MANAGER_ID, id);
}
public void setManagerId(final Long id) {
setManagerId(id.toString());
}
public void setManagerId(final APIID id) {
setAttribute(ATTRIBUTE_MANAGER_ID, id);
}
public void setState(final String state) {
this.setAttribute(ATTRIBUTE_STATE, state);
}
@Override
public void setIcon(final String iconPath) {
this.setAttribute(ATTRIBUTE_ICON, iconPath);
}
@Override
public void setCreationDate(final String date) {
this.setAttribute(ATTRIBUTE_CREATION_DATE, date);
}
@Override
public void setCreationDate(final Date date) {
this.setAttribute(ATTRIBUTE_CREATION_DATE, date);
}
@Override
public void setCreatedByUserId(final String id) {
this.setAttribute(ATTRIBUTE_CREATED_BY_USER_ID, id);
}
@Override
public void setCreatedByUserId(final Long id) {
setCreatedByUserId(id.toString());
}
@Override
public void setCreatedByUserId(final APIID id) {
this.setAttribute(ATTRIBUTE_CREATED_BY_USER_ID, id);
}
@Override
public void setLastUpdateDate(final String date) {
this.setAttribute(ATTRIBUTE_LAST_UPDATE_DATE, date);
}
@Override
public void setLastUpdateDate(final Date date) {
this.setAttribute(ATTRIBUTE_LAST_UPDATE_DATE, date);
}
public void setLastConnectionDate(final String date) {
this.setAttribute(ATTRIBUTE_LAST_CONNECTION_DATE, date);
}
public void setLastConnectionDate(final Date date) {
this.setAttribute(ATTRIBUTE_LAST_CONNECTION_DATE, date);
}
public void setTitle(final String title) {
this.setAttribute(ATTRIBUTE_TITLE, title);
}
public void setJobTitle(final String jobTitle) {
this.setAttribute(ATTRIBUTE_JOB_TITLE, jobTitle);
}
// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// DEPLOYS
// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public static final String DEPLOY_PROFESSIONAL_DATA = "professional_data";
public static final String DEPLOY_PERSONNAL_DATA = "personnal_data";
public ProfessionalContactDataItem getProfessionalData() {
return new ProfessionalContactDataItem(getDeploy(DEPLOY_PROFESSIONAL_DATA));
}
public PersonalContactDataItem getPersonnalData() {
return new PersonalContactDataItem(getDeploy(DEPLOY_PERSONNAL_DATA));
}
public UserItem getManager() {
return new UserItem(getDeploy(ATTRIBUTE_MANAGER_ID));
}
@Override
public UserItem getCreatedByUser() {
return new UserItem(getDeploy(ATTRIBUTE_CREATED_BY_USER_ID));
}
// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// UTILS
// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@Override
public ItemDefinition<UserItem> getItemDefinition() {
return new UserDefinition();
}
}