blob: 7a37200c039f090b75a72b3e5a003025f2cd371d [file] [log] [blame]
/*
* Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.psi.impl.source.html;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.search.PsiElementProcessor;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.xml.XmlElementType;
import com.intellij.psi.xml.XmlTag;
import com.intellij.psi.xml.XmlTagChild;
import com.intellij.util.IncorrectOperationException;
/**
* @author Dennis.Ushakov
*/
public class HtmlEmbeddedContentImpl extends ASTWrapperPsiElement implements XmlTagChild {
public HtmlEmbeddedContentImpl(final ASTNode node) {
super(node);
}
@Override
public XmlTag getParentTag() {
final PsiElement parent = getParent();
if (parent instanceof XmlTag) return (XmlTag)parent;
return null;
}
@Override
public XmlTagChild getNextSiblingInTag() {
PsiElement nextSibling = getNextSibling();
if (nextSibling instanceof XmlTagChild) return (XmlTagChild)nextSibling;
return null;
}
@Override
public XmlTagChild getPrevSiblingInTag() {
final PsiElement prevSibling = getPrevSibling();
if (prevSibling instanceof XmlTagChild) return (XmlTagChild)prevSibling;
return null;
}
@Override
public boolean processElements(PsiElementProcessor processor, PsiElement place) {
// TODO
return true;
}
public String toString() {
String s = super.toString();
final IElementType type = getNode().getElementType();
if (type != XmlElementType.HTML_EMBEDDED_CONTENT) s += ":" + type;
return s;
}
@Override
public void delete() throws IncorrectOperationException {
final ASTNode astNode = getNode();
astNode.getTreeParent().removeChild(astNode);
}
}