1 15 package org.apache.tapestry.portlet; 16 17 import javax.portlet.PortletRequest; 18 19 import org.apache.hivemind.impl.BaseLocatable; 20 import org.apache.hivemind.util.Defense; 21 import org.apache.hivemind.util.ToStringBuilder; 22 23 29 public class PageResolverContribution extends BaseLocatable implements Comparable 30 { 31 private String _portletMode; 32 33 private String _windowState; 34 35 private String _mimeType; 36 37 private String _pageName; 38 39 public void setMimeType(String mimeType) 40 { 41 _mimeType = mimeType; 42 } 43 44 public void setPageName(String pageName) 45 { 46 _pageName = pageName; 47 } 48 49 public String getPageName() 50 { 51 return _pageName; 52 } 53 54 public void setPortletMode(String portletMode) 55 { 56 _portletMode = portletMode; 57 } 58 59 public void setWindowState(String windowState) 60 { 61 _windowState = windowState; 62 } 63 64 int sortScore() 65 { 66 int result = 0; 67 68 if (_mimeType != null) 69 result += 4; 70 71 if (_portletMode != null) 72 result += 2; 73 74 if (_windowState != null) 75 result += 1; 76 77 return result; 78 } 79 80 public String toString() 81 { 82 ToStringBuilder builder = new ToStringBuilder(this); 83 84 builder.append("mimeType", _mimeType); 85 builder.append("portletMode", _portletMode); 86 builder.append("windowState", _windowState); 87 builder.append("pageName", _pageName); 88 89 return builder.toString(); 90 } 91 92 public int compareTo(Object o) 93 { 94 int thisScore = sortScore(); 95 int otherScore = ((PageResolverContribution) o).sortScore(); 96 97 99 return otherScore - thisScore; 100 } 101 102 public boolean match(PortletRequest request) 103 { 104 Defense.notNull(request, "request"); 105 106 if (_mimeType != null && !_mimeType.equals(request.getResponseContentType())) 107 return false; 108 109 if (_portletMode != null && !_portletMode.equals(request.getPortletMode().toString())) 110 return false; 111 112 if (_windowState != null && !_windowState.equals(request.getWindowState().toString())) 113 return false; 114 115 return true; 116 } 117 } 118 | Popular Tags |