return;
IStructuredDocumentRegion documentRegion = document.getFirstStructuredDocumentRegion();
while (documentRegion != null) {
if (documentRegion.getType().equals(DOMJSPRegionContexts.JSP_DIRECTIVE_NAME)) {
if (documentRegion.getNumberOfRegions() > 2) {
ITextRegionList regions = documentRegion.getRegions();
String directiveName = documentRegion.getText(regions.get(1));
if (JSP12TLDNames.TAG.equals(directiveName)) {
// 8.5.1
String attrName = null;
for (int i = 2; i < documentRegion.getNumberOfRegions(); i++) {
ITextRegion region = regions.get(i);
String text = documentRegion.getText(region);
if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
attrName = text;
}
// process value
else if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
text = StringUtils.strip(text);
if (JSP12TLDNames.DISPLAY_NAME.equals(attrName)) {
ed.setDisplayName(text);
}
else if (JSP12TLDNames.BODY_CONTENT.equals(attrName)) {
ed.setBodycontent(text);
}
else if (JSP20TLDNames.DYNAMIC_ATTRIBUTES.equals(attrName)) {
ed.setDynamicAttributes(text);
}
else if (JSP12TLDNames.SMALL_ICON.equals(attrName)) {
ed.setSmallIcon(text);
}
else if (JSP12TLDNames.LARGE_ICON.equals(attrName)) {
ed.setLargeIcon(text);
}
else if (JSP12TLDNames.DESCRIPTION.equals(attrName)) {
ed.setDescription(text);
}
else if (JSP20TLDNames.EXAMPLE.equals(attrName)) {
ed.setExample(text);
}
else if (JSP20TLDNames.SCRIPTING_LANGUAGE.equals(attrName)) {
ed.setScriptingLanguage(text);
}
else if (JSP20TLDNames.IMPORT.equals(attrName)) {
ed.setImport(text);
}
else if (JSP20TLDNames.PAGE_ENCODING.equals(attrName)) {
ed.setPageEncoding(text);
}
else if (JSP20TLDNames.IS_EL_IGNORED.equals(attrName)) {
ed.setIsELIgnored(text);
}
}
}
}
else if (JSP12TLDNames.ATTRIBUTE.equals(directiveName)) {
CMAttributeDeclarationImpl attribute = new CMAttributeDeclarationImpl(ed.getOwnerDocument());
// 8.5.2
String attrName = null;
for (int i = 2; i < documentRegion.getNumberOfRegions(); i++) {
ITextRegion region = regions.get(i);
String text = documentRegion.getText(region);
if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
attrName = text;
}
// process value
else if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE && attrName != null) {
text = StringUtils.strip(text);
if (JSP12TLDNames.NAME.equals(attrName)) {
attribute.setNodeName(text);
}
else if (JSP20TLDNames.FRAGMENT.equals(attrName)) {
attribute.setFragment(Boolean.valueOf(text).booleanValue());
}
else if (JSP12TLDNames.RTEXPRVALUE.equals(attrName)) {
attribute.setRtexprvalue(text);
}
else if (JSP20TLDNames.TYPE.equals(attrName)) {
attribute.setType(text);
}
else if (JSP12TLDNames.DESCRIPTION.equals(attrName)) {
attribute.setDescription(text);
}
else if (JSP12TLDNames.REQUIRED.equals(attrName)) {
attribute.setRequiredString(text);
}
}
}
if (attribute.getNodeName() != null) {
ed.fAttributes.setNamedItem(attribute.getNodeName(), attribute);
}
}
else if (JSP12TLDNames.VARIABLE.equals(directiveName)) {
TLDVariableImpl variable = new TLDVariableImpl();
String attrName = null;
for (int i = 2; i < documentRegion.getNumberOfRegions(); i++) {
ITextRegion region = regions.get(i);
String text = documentRegion.getText(region);
if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
attrName = text;
}
// process value
else if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE && attrName != null) {
text = StringUtils.strip(text);
if (JSP12TLDNames.VARIABLE_NAME_GIVEN.equals(attrName)) {
variable.setNameGiven(text);
}
else if (JSP12TLDNames.VARIABLE_NAME_FROM_ATTRIBUTE.equals(attrName)) {
variable.setNameFromAttribute(text);
}
else if (JSP20TLDNames.VARIABLE_ALIAS.equals(attrName)) {
variable.setAlias(text);
}
else if (JSP12TLDNames.VARIABLE_CLASS.equals(attrName)) {
variable.setVariableClass(text);
}
else if (JSP12TLDNames.VARIABLE_DECLARE.equals(attrName)) {
variable.setDeclareString(text);
}
else if (JSP11Namespace.ATTR_NAME_SCOPE.equals(attrName)) {
variable.setScope(text);
}
else if (JSP12TLDNames.DESCRIPTION.equals(attrName)) {
variable.setDescription(text);
}
}
}
if (variable.getAlias() != null || variable.getNameFromAttribute() != null || variable.getNameGiven() != null) {
ed.getVariables().add(variable);
}
}
else if ("include".equals(directiveName) && allowIncludes) {
String attrName = null;
for (int i = 2; i < documentRegion.getNumberOfRegions(); i++) {
ITextRegion region = regions.get(i);
String text = documentRegion.getText(region);
if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
attrName = text;
}
// process value