//$Id: UserPropertyExporter.java,v 1.1 2007-2-7 下午08:00:39 chaostone Exp $ /* * * Copyright c 2005-2009 * Licensed under the Apache License, Version 2.0 (the "License") * http://www.apache.org/licenses/LICENSE-2.0 * * */ /******************************************************************************** * @author chaostone * * MODIFICATION DESCRIPTION * * Name Date Description * ============ ============ ============ *chaostone 2007-2-7 Created * ********************************************************************************/ package org.beanfuse.security.model; import java.util.Collection; import java.util.Iterator; import org.beanfuse.transfer.exporter.DefaultPropertyExtractor; public class UserPropertyExtractor extends DefaultPropertyExtractor { public Object getPropertyValue(Object target, String property) throws Exception { User user = (User) target; if("id".equals(property)){ return new Long(121212); } if ("groups".equals(property)) { return getPropertyIn(user.getGroups(), "name"); } else if ("mngGroups".equals(property)) { return getPropertyIn(user.getMngGroups(), "name"); } else if ("mngUsers".equals(property)) { return getUserNames(user.getMngUsers()); } else { return super.getPropertyValue(target, property); } } public static final StringBuilder getUserNames(Collection users) { StringBuilder sb = new StringBuilder(); for (Iterator iter = users.iterator(); iter.hasNext();) { User user = (User) iter.next(); sb.append(user.getFullname()).append('(').append(user.getName()).append(')'); if (iter.hasNext()) { sb.append(' '); } } return sb; } }