1 15 package org.apache.tapestry.portlet.bindings; 16 17 import java.util.Map ; 18 19 import javax.portlet.PortletRequest; 20 21 import org.apache.hivemind.ApplicationRuntimeException; 22 import org.apache.hivemind.Location; 23 import org.apache.hivemind.util.Defense; 24 import org.apache.tapestry.binding.AbstractBinding; 25 import org.apache.tapestry.coerce.ValueConverter; 26 27 33 public class UserAttributeBinding extends AbstractBinding 34 { 35 private PortletRequest _request; 36 37 private String _attributeName; 38 39 public UserAttributeBinding(String description, ValueConverter valueConverter, 40 Location location, PortletRequest request, String attributeName) 41 { 42 super(description, valueConverter, location); 43 44 Defense.notNull(request, "request"); 45 Defense.notNull(attributeName, "attributeName"); 46 47 _request = request; 48 _attributeName = attributeName; 49 } 50 51 public boolean isInvariant() 52 { 53 return false; 55 } 56 57 private Map getUserInfo() 58 { 59 Map result = (Map ) _request.getAttribute(PortletRequest.USER_INFO); 60 61 if (result == null) 62 throw new ApplicationRuntimeException(BindingsMessages.noUserInfo(), getLocation(), 63 null); 64 65 return result; 66 } 67 68 public Object getObject() 69 { 70 return getUserInfo().get(_attributeName); 71 } 72 73 public void setObject(Object value) 74 { 75 String asString = (String ) getValueConverter().coerceValue(value, String .class); 76 77 getUserInfo().put(_attributeName, asString); 78 } 79 } 80 | Popular Tags |