use of org.eclipse.wst.xml.core.internal.commentelement.util.TagScanner in project webtools.sourceediting by eclipse.
the class BasicCommentElementHandler method createElement.
public Element createElement(Document document, String data, boolean isJSPTag) {
Element element = null;
String str = data.trim();
CommentElementFactory factory = new CommentElementFactory(document, isJSPTag, this);
if (str.charAt(0) == '/') {
// end tag
// skip '/'
TagScanner scanner = new TagScanner(str, 1);
String name = scanner.nextName();
if (name.equals(elementName)) {
element = factory.create(name, CommentElementFactory.IS_END);
}
} else {
// start tag
TagScanner scanner = new TagScanner(str, 0);
String name = scanner.nextName();
if (name.equals(elementName)) {
element = factory.create(name, (isEmpty) ? CommentElementFactory.IS_EMPTY : CommentElementFactory.IS_START);
// set attributes
String attrName = scanner.nextName();
while (attrName != null) {
String attrValue = scanner.nextValue();
Attr attr = document.createAttribute(attrName);
if (attr != null) {
if (attrValue != null)
((IDOMAttr) attr).setValueSource(attrValue);
element.setAttributeNode(attr);
}
attrName = scanner.nextName();
}
}
}
return element;
}
use of org.eclipse.wst.xml.core.internal.commentelement.util.TagScanner in project webtools.sourceediting by eclipse.
the class CommentElementHandlerForFoo method createElement.
public Element createElement(Document document, String data, boolean isJSPTag) {
TagScanner scanner = new TagScanner(data, 1);
String name = scanner.nextName();
if (name == null) {
return null;
}
StringBuffer buffer = new StringBuffer(name.length() + 4);
buffer.append(PREFIX);
buffer.append(':');
buffer.append(name);
String tagName = buffer.toString();
CommentElementFactory factory = new CommentElementFactory(document, isJSPTag, this);
Element element = factory.create(tagName, CommentElementFactory.IS_START);
// set attributes
String attrName = scanner.nextName();
while (attrName != null) {
String attrValue = scanner.nextValue();
Attr attr = document.createAttribute(attrName);
if (attr != null) {
if (attrValue != null)
attr.setValue(attrValue);
element.setAttributeNode(attr);
}
attrName = scanner.nextName();
}
return element;
}
use of org.eclipse.wst.xml.core.internal.commentelement.util.TagScanner in project webtools.sourceediting by eclipse.
the class CommentElementHandlerForSSI method createElement.
public Element createElement(Document document, String data, boolean isJSPTag) {
ModelQuery modelQuery = ModelQueryUtil.getModelQuery(document);
if (modelQuery == null) {
return null;
}
CMDocument cm = modelQuery.getCorrespondingCMDocument(document);
if (cm == null) {
return null;
}
CMNamedNodeMap map = cm.getElements();
if (map == null) {
return null;
}
TagScanner scanner = new TagScanner(data, 1);
String name = scanner.nextName();
if (name == null) {
return null;
}
StringBuffer buffer = new StringBuffer(name.length() + 4);
buffer.append(SSI_PREFIX);
buffer.append(':');
buffer.append(name);
String tagName = buffer.toString();
// check if valid (defined) SSI tag or not
if (map.getNamedItem(tagName) == null) {
return null;
}
CommentElementFactory factory = new CommentElementFactory(document, isJSPTag, this);
Element element = factory.create(tagName, CommentElementFactory.IS_START);
// set attributes
String attrName = scanner.nextName();
while (attrName != null) {
String attrValue = scanner.nextValue();
Attr attr = document.createAttribute(attrName);
if (attr != null) {
if (attrValue != null)
attr.setValue(attrValue);
element.setAttributeNode(attr);
}
attrName = scanner.nextName();
}
return element;
}
Aggregations