| /******************************************************************************* |
| * Copyright (c) 2004 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.wst.jsdt.web.core.internal.contentmodel.tld; |
| |
| import java.util.Enumeration; |
| |
| import org.eclipse.wst.jsdt.web.core.internal.contentmodel.tld.provisional.JSP12TLDNames; |
| import org.eclipse.wst.jsdt.web.core.internal.contentmodel.tld.provisional.TLDAttributeDeclaration; |
| import org.eclipse.wst.jsdt.web.core.internal.contentmodel.tld.provisional.TLDDocument; |
| import org.eclipse.wst.sse.core.utils.StringUtils; |
| import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; |
| import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument; |
| import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; |
| |
| public class CMAttributeDeclarationImpl implements TLDAttributeDeclaration { |
| |
| private CMDataType attrType = new CMDataTypeImpl(CMDataType.CDATA); |
| private String fDescription; |
| |
| // |
| private boolean fIsFragment = false; |
| |
| private CMDocument fOwnerDocument; |
| // optional id |
| private String id = null; |
| |
| // required name |
| private String name = null; |
| // optional "required" element present, defaults to not present |
| private boolean required = false; |
| |
| // optional run-time (scriplet derived) value of attributes, defaults to |
| // none/false |
| private String rtexprvalue = null; |
| |
| private String type = null; |
| |
| /** |
| * CMAttributeDeclarationImpl constructor comment. |
| */ |
| public CMAttributeDeclarationImpl(CMDocument owner) { |
| super(); |
| fOwnerDocument = owner; |
| } |
| |
| /** |
| * getAttrName method |
| * |
| * @return java.lang.String |
| */ |
| public String getAttrName() { |
| return getNodeName(); |
| } |
| |
| /** |
| * getAttrType method |
| * |
| * @return CMDataType |
| */ |
| public CMDataType getAttrType() { |
| return attrType; |
| } |
| |
| /** |
| * @deprecated in superclass |
| */ |
| @Deprecated |
| public String getDefaultValue() { |
| return ""; //$NON-NLS-1$ |
| } |
| |
| /** |
| * @return Returns the description. |
| */ |
| public String getDescription() { |
| return fDescription; |
| } |
| |
| /** |
| * @deprecated in superclass |
| */ |
| @Deprecated |
| public Enumeration getEnumAttr() { |
| return null; |
| } |
| |
| /** |
| * |
| * @return java.lang.String |
| */ |
| public String getId() { |
| return id; |
| } |
| |
| /** |
| * getNodeName method |
| * |
| * @return java.lang.String |
| */ |
| public String getNodeName() { |
| return name; |
| } |
| |
| /** |
| * getNodeType method |
| * |
| * @return int |
| * |
| * Returns one of : |
| * |
| */ |
| public int getNodeType() { |
| return CMNode.ATTRIBUTE_DECLARATION; |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.wst.jsdt.web.core.contentmodel.tld.TLDAttributeDeclaration#getOwnerDocument() |
| */ |
| public CMDocument getOwnerDocument() { |
| return fOwnerDocument; |
| } |
| |
| /** |
| * getProperty method |
| * |
| * @return java.lang.Object |
| * |
| * Returns the object property desciped by the propertyName |
| * |
| */ |
| public Object getProperty(String propertyName) { |
| if (propertyName != null |
| && propertyName.equals(JSP12TLDNames.DESCRIPTION)) { |
| return getDescription(); // return attribute description |
| } else if (propertyName.equals(TLDDocument.CM_KIND)) { |
| return TLDDocument.JSP_TLD; |
| } else if (propertyName.equals(JSP12TLDNames.SMALL_ICON) |
| || propertyName.equals(JSP12TLDNames.LARGE_ICON)) { |
| return getOwnerDocument().getProperty(propertyName); |
| } |
| return null; |
| } |
| |
| /** |
| * |
| * @return java.lang.String |
| */ |
| public java.lang.String getRtexprvalue() { |
| return rtexprvalue; |
| } |
| |
| public String getType() { |
| return type; |
| } |
| |
| /** |
| * getUsage method |
| * |
| * @return int OPTIONAL|REQUIRED |
| */ |
| public int getUsage() { |
| return required ? REQUIRED : OPTIONAL; |
| } |
| |
| /** |
| * @return Returns the isFragment. |
| */ |
| public boolean isFragment() { |
| return fIsFragment; |
| } |
| |
| /** |
| * |
| * @return boolean |
| */ |
| public boolean isRequired() { |
| return required; |
| } |
| |
| /** |
| * @param description |
| * The description to set. |
| */ |
| public void setDescription(String description) { |
| fDescription = description; |
| } |
| |
| /** |
| * @param isFragment |
| * The isFragment to set. |
| */ |
| public void setFragment(boolean isFragment) { |
| fIsFragment = isFragment; |
| } |
| |
| /** |
| * |
| * @param newId |
| * java.lang.String |
| */ |
| public void setId(String newId) { |
| id = newId; |
| } |
| |
| public void setNodeName(String string) { |
| name = string; |
| } |
| |
| /** |
| * |
| * @param newRequired |
| * boolean |
| */ |
| public void setRequired(boolean newRequired) { |
| required = newRequired; |
| } |
| |
| /** |
| * |
| * @param newRequired |
| * boolean |
| */ |
| public void setRequiredString(String newRequired) { |
| if (newRequired.equalsIgnoreCase("true") |
| || newRequired.equalsIgnoreCase("yes")) { |
| setRequired(true); |
| } else if (newRequired.equalsIgnoreCase("false") |
| || newRequired.equalsIgnoreCase("no")) { |
| setRequired(false); |
| } |
| } |
| |
| /** |
| * |
| * @param newRtexprvalue |
| * java.lang.String |
| */ |
| public void setRtexprvalue(String newRtexprvalue) { |
| rtexprvalue = newRtexprvalue; |
| } |
| |
| public void setType(String type) { |
| this.type = type; |
| } |
| |
| /** |
| * supports method |
| * |
| * @return boolean |
| * |
| * Returns true if the CMNode supports a specified property |
| * |
| */ |
| public boolean supports(String propertyName) { |
| return propertyName == null |
| || propertyName.equals(JSP12TLDNames.DESCRIPTION) |
| || propertyName.equals(TLDDocument.CM_KIND) |
| || propertyName.equals(JSP12TLDNames.SMALL_ICON) |
| || propertyName.equals(JSP12TLDNames.LARGE_ICON); |
| } |
| |
| @Override |
| public String toString() { |
| StringBuffer buffer = new StringBuffer(); |
| buffer.append("\n\t " + super.toString()); //$NON-NLS-1$ |
| buffer.append("\n\t name:" + StringUtils.escape(getNodeName())); //$NON-NLS-1$ |
| // Boolean.toString(boolean) is introduced in 1.4 |
| // buffer.append("\n\t required:" + |
| // StringUtils.escape(Boolean.toString(isRequired()))); |
| buffer.append("\n\t required:" + StringUtils.toString(isRequired())); //$NON-NLS-1$ |
| buffer.append("\n\t rtexpr:" + StringUtils.escape(getRtexprvalue())); //$NON-NLS-1$ |
| if (getId() != null) { |
| buffer.append("\n\t id:" + StringUtils.escape(getId())); //$NON-NLS-1$ |
| } |
| return buffer.toString(); |
| } |
| } |