/*
* Copyright 2008 Jeff Dwyer
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.apress.progwt.client.domain;
//Generated Jul 18, 2006 12:44:47 PM by Hibernate Tools 3.1.0.beta4
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.apress.progwt.client.domain.forum.ForumTopic;
import com.apress.progwt.client.domain.generated.AbstractUser;
/**
* User generated by hbm2java
*/
/**
* Extended by ServerSideUser on the Server to implement UserDetails,
* Since getting the acegisecurity jar into client side land was a no go.
*
*/
public class User extends AbstractUser implements Serializable, Loadable,
ForumTopic {
/**
* getter speed optimization
*/
private transient List<ProcessType> nonStatusProcessTypes;
/**
* getter speed optimization
*/
private transient List<ProcessType> statusProcessTypes;
public User() {
setEnabled(true);
setSupervisor(false);
}
public boolean isAccountNonExpired() {
return true;
}
public boolean isAccountNonLocked() {
return true;
}
public boolean isCredentialsNonExpired() {
return true;
}
// @Override
public String toString() {
return "|" + getId() + ":" + getUsername() + "|";
}
// /**
// * TODO PEND HIGH
// */
// public String getNickname() {
// if (isOpenID()) {
// String half = getUsername().replaceAll("http://", "");
// return half.replaceAll("/", "");
// }
// return getUsername();
// }
private boolean isOpenID() {
return getPassword() == null;
}
public void addRanked(Application schoolAndAppProcess) {
schoolAndAppProcess.setUser(this);
getSchoolRankings().add(schoolAndAppProcess);
}
public void addRanked(int rank, Application sap) {
sap.setUser(this);
getSchoolRankings().remove(sap);
getSchoolRankings().add(rank, sap);
}
public int getPriority(RatingType ratingType) {
Integer priority = getPriorities().get(ratingType);
if (priority == null) {
return 5;
}
return priority;
}
public List<ApplicationAndScore> getPrioritizedRankings() {
List<ApplicationAndScore> rtn = new ArrayList<ApplicationAndScore>();
for (Application application : getSchoolRankings()) {
rtn.add(application.getAppAndScore(getRatingTypes(), this));
}
Collections.sort(rtn);
return rtn;
}
/**
* Cache this list to speed things up
*
* @return
*/
public List<ProcessType> getNonStatusProcessTypes() {
if (null == nonStatusProcessTypes) {
nonStatusProcessTypes = getProcessTypes(false);
}
return nonStatusProcessTypes;
}
/**
* Cache this list to speed things up
*
* @return
*/
public List<ProcessType> getStatusProcessTypes() {
if (null == statusProcessTypes) {
statusProcessTypes = getProcessTypes(true);
}
return statusProcessTypes;
}
private List<ProcessType> getProcessTypes(boolean status) {
List<ProcessType> rtn = new ArrayList<ProcessType>();
for (ProcessType processType : getProcessTypes()) {
if (status == processType.getStatus_order() > 0) {
rtn.add(processType);
}
}
return rtn;
}
public String getForumDisplayName() {
return getNickname();
}
public ForumPost getForumPost() {
return null;
}
public ForumPost getReplyInstance(User author, String title,
String text, ForumPost thread) {
return new UserForumPost(this, author, title, text, thread);
}
public String getUniqueForumID() {
return "User" + ForumTopic.SEP + getId();
}
public boolean doThreadListView() {
return false;
}
}