⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userlayoutchanneldescription.java

📁 uPortal是开放源码的Portal门户产品
💻 JAVA
字号:
package org.jasig.portal.layout;import java.util.Collection;import java.util.Collections;import java.util.Enumeration;import java.util.Hashtable;import java.util.Map;import org.jasig.portal.PortalException;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;/** * A class managing information contained in a user layout channel node. * * @author <a href="mailto:pkharchenko@interactivebusiness.com">Peter Kharchenko</a> * @version 1.0 */public class UserLayoutChannelDescription extends UserLayoutNodeDescription implements IUserLayoutChannelDescription  {    Hashtable parameters;    Hashtable override;    String title=null;    String description=null;    String className=null;    String channelPublishId=null;    String channelTypeId=null;    String functionalName=null;    long timeout=-1;    boolean editable=false;    boolean hasHelp=false;    boolean hasAbout=false;    boolean isSecure=false;        public UserLayoutChannelDescription() {        parameters=new Hashtable();        override=new Hashtable();    }    public UserLayoutChannelDescription(IUserLayoutChannelDescription d) {        this();        this.title=d.getTitle();        this.description=d.getDescription();        this.className=d.getClassName();        this.channelPublishId=d.getChannelPublishId();        this.channelTypeId=d.getChannelTypeId();        this.functionalName=d.getFunctionalName();        this.timeout=d.getTimeout();        this.editable=d.isEditable();        this.hasHelp=d.hasHelp();        this.hasAbout=d.hasAbout();        for(Enumeration enum = d.getParameterNames(); enum.hasMoreElements();) {            String pName=(String)enum.nextElement();            this.setParameterValue(pName,d.getParameterValue(pName));            this.setParameterOverride(pName,d.getParameterOverrideValue(pName));        }    }    /**     * Reconstruct channel information from an xml <code>Element</code>     *     * @param xmlNode a user layout channel <code>Element</code> value     * @exception PortalException if xml is malformed     */    public UserLayoutChannelDescription(Element xmlNode) throws PortalException {        this();        if(!xmlNode.getNodeName().equals("channel")) {            throw new PortalException("Given XML Element is not a channel!");        }        // could do some validation here, but this code will probably go away anyhow        // standard Node attributes        this.setId(xmlNode.getAttribute("ID"));        this.setName(xmlNode.getAttribute("name"));        this.setUnremovable((new Boolean(xmlNode.getAttribute("unremovable"))).booleanValue());        this.setImmutable((new Boolean(xmlNode.getAttribute("immutable"))).booleanValue());        // channel-specific attributes        this.setTitle(xmlNode.getAttribute("title"));        this.setDescription(xmlNode.getAttribute("description"));        this.setClassName(xmlNode.getAttribute("class"));        this.setChannelPublishId(xmlNode.getAttribute("chanID"));        this.setChannelTypeId(xmlNode.getAttribute("typeID"));        this.setFunctionalName(xmlNode.getAttribute("fname"));        this.setTimeout(Long.parseLong(xmlNode.getAttribute("timeout")));        this.setEditable(Boolean.valueOf(xmlNode.getAttribute("editable")).booleanValue());        this.setHasHelp(Boolean.valueOf(xmlNode.getAttribute("hasHelp")).booleanValue());        this.setHasAbout(Boolean.valueOf(xmlNode.getAttribute("hasAbout")).booleanValue());        this.setIsSecure(Boolean.valueOf(xmlNode.getAttribute("secure")).booleanValue());                // process parameter elements        for(Node n=xmlNode.getFirstChild(); n!=null;n=n.getNextSibling()) {            if(n.getNodeType()==Node.ELEMENT_NODE) {                Element e=(Element) n;                if(e.getNodeName().equals("parameter")) {                    // get parameter name and value                    String pName=e.getAttribute("name");                    String pValue=e.getAttribute("value");                    Boolean canOverride=new Boolean(false);                    String str_override=e.getAttribute("override");                    if(str_override!=null && str_override.equals("yes")) {                        canOverride=new Boolean(true);                    }                    if(pName!=null && pValue!=null) {                        this.setParameterValue(pName,pValue);                        this.setParameterOverride(pName,canOverride.booleanValue());                    }                }            }        }    }    /**     * Determine if the channel supports "about" action.     * @return value of hasAbout.     */    public boolean hasAbout() {        return hasAbout;    }    /**     * Specify whether the channel supports "about" action.     * @param v  Value to assign to hasAbout.     */    public void setHasAbout(boolean  v) {        this.hasAbout = v;    }    /**     * Determine if the channel supports "help" action.     * @return value of hasHelp.     */    public boolean hasHelp() {        return hasHelp;    }    /**     * Specify whether the channel supports "help" action.     * @param v  Value to assign to hasHelp.     */    public void setHasHelp(boolean  v) {        this.hasHelp = v;    }    /**     * Determine if the channel is editable.     * @return value of editable.     */    public boolean isEditable() {        return editable;    }    /**     * Specify whether the channel is editable.     * @param v  Value to assign to editable.     */    public void setEditable(boolean  v) {        this.editable = v;    }    /**     * Get the value of channel timeout in milliseconds.     * @return value of timeout.     */    public long getTimeout() {        return timeout;    }    /**     * Set the value of channel timeout in milliseconds.     * @param v  Value to assign to timeout.     */    public void setTimeout(long  v) {        this.timeout = v;    }    /**     * Get the value of secure setting.     * @return value of secure.     */        public boolean isSecure(){        return isSecure;    }    /**     * Set the value of channel secure setting.     * @param secure  Value to assign to secure     */        public void setIsSecure(boolean secure){        this.isSecure = secure;    }    /**     * Get the value of functionalName.     * @return value of functionalName.     */    public String getFunctionalName() {        return functionalName;    }    /**     * Set the value of functionalName.     * @param v  Value to assign to functionalName.     */    public void setFunctionalName(String  v) {        this.functionalName = v;    }    /**     * Get the value of channelSubscribeId.     * @return value of channelSubscribeId.     */    public String getChannelSubscribeId() {        return super.getId();    }    /**     * Set the value of channelSubscribeId.     * @param v  Value to assign to channelSubscribeId.     */    public void setChannelSubscribeId(String  v) {        super.setId(v);    }    /**     * Get the value of channelTypeId.     * @return value of channelTypeId.     */    public String getChannelTypeId() {        return channelTypeId;    }    /**     * Set the value of channelTypeId.     * @param v  Value to assign to channelTypeId.     */    public void setChannelTypeId(String  v) {        this.channelTypeId = v;    }    /**     * Get the value of channelPublishId for this channel.     * @return value of channelPublishId.     */    public String getChannelPublishId() {        return channelPublishId;    }    /**     * Set the value of channelPublishId for this channel.     * @param v  Value to assign to channelPublishId.     */    public void setChannelPublishId(String  v) {        this.channelPublishId = v;    }    /**     * Get the value of className implementing this channel.     * @return value of className.     */    public String getClassName() {        return className;    }    /**     * Set the value of className implementing this channel.     * @param v  Value to assign to className.     */    public void setClassName(String  v) {        this.className = v;    }    /**     * Get the value of title.     * @return value of title.     */    public String getTitle() {        return title;    }    /**     * Set the value of title.     * @param v  Value to assign to title.     */    public void setTitle(String  v) {        this.title = v;    }    /**     * Get the value of description.     * @return value of description.     */    public String getDescription() {        return description;    }    /**     * Set the value of description.     * @param v  Value to assign to description.     */    public void setDescription(String  v) {        this.description = v;    }    // channel parameter methods    /**     * Set a channel parameter value.     *     * @param parameterValue a <code>String</code> value     * @param parameterName a <code>String</code> value     * @return a <code>String</code> value that was set.     */    public String setParameterValue(String parameterName, String parameterValue) {        return (String) parameters.put(parameterName,parameterValue);    }    /**     * Obtain a channel parameter value.     *     * @param parameterName a <code>String</code> value     * @return a <code>String</code> value     */    public String getParameterValue(String parameterName) {        return (String) parameters.get(parameterName);    }     /**     * Obtain a channel parameter override value.     *     * @param parameterName a <code>String</code> value     * @return a <code>boolean</code> value     */    public boolean getParameterOverrideValue(String parameterName) {        Boolean boolValue = (Boolean)override.get(parameterName);        if ( boolValue != null )         return boolValue.booleanValue();         return true;    }    /**     * Obtain values of all existing channel parameters.     *     * @return a <code>Collection</code> of <code>String</code> parameter values.     */    public Collection getParameterValues()  {        return parameters.values();    }    /**     * Determines the number of existing channel parameters.     *     * @return an <code>int</code> value     */    public int numberOfParameters() {        return parameters.size();    }    /**     * Clears all of the channel parameters.     *     */    public void clearParameters() {        parameters.clear();        override.clear();    }    /**     * Determine if a given parameter can be overriden by the user.     * (defaults to true)     * @param parameterName a <code>String</code> value     * @return a <code>boolean</code> value     */    public boolean canOverrideParameter(String parameterName) {        Boolean ov=(Boolean) override.get(parameterName);        if(ov!=null) {            return ov.booleanValue();        } else {            return false;        }    }    /**     * Set parameter override flag.     *     * @param parameterName a <code>String</code> value     * @param canOverride a <code>boolean</code> flag.     */    public void setParameterOverride(String parameterName, boolean canOverride) {        if(parameters.get(parameterName)!=null) {            this.override.put(parameterName,new Boolean(canOverride));        }    }    /**     * Remove a channel parameter.     *     * @param parameterName a <code>String</code> parameter name.     * @return an old parameter value.     */    public String remove(String parameterName) {        return (String) parameters.remove(parameterName);    }    /**     * Obtain a set of channel parameter names.     *     * @return a <code>Set</code> of <code>String</code> parameter names.     */    public Enumeration getParameterNames() {        return parameters.keys();    }    /**     * Returns an entire mapping of parameters.     *     * @return a <code>Map</code> of parameter names on parameter values.     */    public Map getParameterMap() {        return Collections.unmodifiableMap(parameters);    }    /**     * Determine if the channel has any parameters.     *     * @return a <code>boolean</code> value     */    public boolean hasParameters() {        return !parameters.isEmpty();    }    /**     * Determines if a certain parameter name is present.     *     * @param parameterName a <code>String</code> parameter name.     * @return a <code>boolean</code> value     */    public boolean containsParameter(String parameterName) {        return parameters.containsKey(parameterName);    }    /**     * Creates a <code>org.w3c.dom.Element</code> representation of the current channel.     *     * @param root a <code>Document</code> for which the <code>Element</code> should be created.     * @return a <code>Node</code> value     */    public Element getXML(Document root) {        Element node=root.createElement("channel");        this.addNodeAttributes(node);        this.addParameterChildren(node,root);        return node;    }    protected void addParameterChildren(Element node, Document root) {        for(Enumeration enum = this.getParameterNames(); enum.hasMoreElements();) {            Element pElement=root.createElement("parameter");            String pName=(String)enum.nextElement();            pElement.setAttribute("name",pName);            pElement.setAttribute("value",getParameterValue(pName));            pElement.setAttribute("override",getParameterOverrideValue(pName) ? "yes" : "no");            node.appendChild(pElement);        }    }    public void addNodeAttributes(Element node) {        super.addNodeAttributes(node);        node.setAttribute("title",this.getTitle());        node.setAttribute("description",this.getDescription());        node.setAttribute("class",this.getClassName());        node.setAttribute("chanID",this.getChannelPublishId());        node.setAttribute("typeID",this.getChannelTypeId());        node.setAttribute("fname",this.getFunctionalName());        node.setAttribute("timeout",Long.toString(this.getTimeout()));        node.setAttribute("editable",(new Boolean(this.isEditable())).toString());        node.setAttribute("hasHelp",(new Boolean(this.hasHelp())).toString());        node.setAttribute("hasAbout",(new Boolean(this.hasAbout())).toString());        node.setAttribute("secure",(new Boolean(this.isSecure())).toString());            }    /**     * Returns a type of the node, could be FOLDER or CHANNEL integer constant.     *     * @return a type     */    public int getType() {      return CHANNEL;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -