/*
* Aipo is a groupware program developed by TOWN, Inc.
* Copyright (C) 2004-2015 TOWN, Inc.
* http://www.aipo.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.aimluck.eip.fileio.beans;
import com.aimluck.commons.field.ALNumberField;
import com.aimluck.commons.field.ALStringField;
import com.aimluck.eip.cayenne.om.security.TurbineUser;
import com.aimluck.eip.orm.Database;
import com.aimluck.eip.orm.query.Operations;
/**
* ユーザー情報を表すクラスです。 <br />
*
*/
public class ScheduleCsvUser {
/** ID */
private ALNumberField user_id;
/** 名前 */
private ALStringField name;
/** 名前(アプリケーション) */
private ALStringField alias_name;
private ALStringField firstName;
private ALStringField lastName;
public ScheduleCsvUser() {
this.initField();
}
public void initField() {
user_id = new ALNumberField();
name = new ALStringField();
alias_name = new ALStringField();
firstName = new ALStringField();
lastName = new ALStringField();
name.setTrim(true);
firstName.setTrim(true);
lastName.setTrim(true);
name.limitMaxLength(16);
firstName.limitMaxLength(20);
lastName.limitMaxLength(20);
}
public ALStringField getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName.setValue(firstName);
}
public ALStringField getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName.setValue(lastName);
}
public void parseFullName(String rawName) {
/** full space to half space */
rawName = rawName.replace(" ", " ");
String value[] = rawName.trim().split(" ");
if (value.length > 0) {
setLastName(value[0].trim());
}
if (value.length > 1) {
setFirstName(value[1].trim());
}
setAliasName(firstName.getValue(), lastName.getValue());
}
/**
*
* @param string
*/
public void setName(String string) {
name.setValue(string);
}
/**
*
* @param firstName
* @param lastName
*/
public void setAliasName(String firstName, String lastName) {
alias_name.setValue(new StringBuffer().append(lastName).append(" ").append(
firstName).toString());
}
/**
*
* @return
*/
public ALStringField getName() {
return name;
}
/**
*
* @return
*/
public ALStringField getAliasName() {
return alias_name;
}
/**
* @return
*/
public ALNumberField getUserId() {
return user_id;
}
/**
* @param field
*/
public void setUserId(int number) {
user_id.setValue(number);
}
public void complement() throws Exception {
if (name.getValue() == null) {
if (lastName.getValue() == null || firstName.getValue() == null) {
return;
}
complementLoginName();
} else {
complementUserName();
}
}
public void complementUserName() throws Exception {
TurbineUser user =
Database.query(TurbineUser.class).where(
Operations.eq(TurbineUser.LOGIN_NAME_PROPERTY, name.getValue())).where(
Operations.eq(TurbineUser.DISABLED_PROPERTY, "F")).fetchSingle();
if (user == null) {
user =
Database.query(TurbineUser.class).where(
Operations.eq(TurbineUser.EMAIL_PROPERTY, name.getValue())).where(
Operations.eq(TurbineUser.DISABLED_PROPERTY, "F")).fetchSingle();
if (user == null) {
name.setValue("");// error化
alias_name.setValue("---");
throw new Exception();
} else {
this.name.limitMaxLength(50);
}
}
user_id.setValue(user.getUserId());
firstName.setValue(user.getFirstName());
lastName.setValue(user.getLastName());
setAliasName(firstName.getValue(), lastName.getValue());
}
public void complementLoginName() throws Exception {
TurbineUser user =
Database.query(TurbineUser.class).where(
Operations.eq(TurbineUser.FIRST_NAME_PROPERTY, firstName.getValue()),
Operations.and(Operations.eq(TurbineUser.LAST_NAME_PROPERTY, lastName
.getValue()))).fetchSingle();
if (user == null) {
throw new Exception();
}
user_id.setValue(user.getUserId());
name.setValue("");
}
}