📄 source.java
字号:
return Tag.getNextTag(this,pos,tagType);
}
/**
* Returns the {@link Tag} that {@linkplain Segment#encloses(int) encloses} the specified position in the source document.
* <p>
* See the {@link Tag} class documentation for more details about the behaviour of this method.
*
* @param pos the position in the source document, may be out of bounds.
* @return the {@link Tag} that {@linkplain Segment#encloses(int) encloses} the specified position in the source document, or <code>null</code> if the position is not within a tag or is out of bounds.
*/
public Tag getEnclosingTag(final int pos) {
return getEnclosingTag(pos,null);
}
/**
* Returns the {@link Tag} of the specified {@linkplain TagType type} that {@linkplain Segment#encloses(int) encloses} the specified position in the source document.
* <p>
* See the {@link Tag} class documentation for more details about the behaviour of this method.
*
* @param pos the position in the source document, may be out of bounds.
* @param tagType the <code>TagType</code> to search for.
* @return the {@link Tag} of the specified {@linkplain TagType type} that {@linkplain Segment#encloses(int) encloses} the specified position in the source document, or <code>null</code> if the position is not within a tag of the specified type or is out of bounds.
*/
public Tag getEnclosingTag(final int pos, final TagType tagType) {
final Tag tag=getPreviousTag(pos,tagType);
if (tag==null || tag.end<=pos) return null;
return tag;
}
/**
* Returns the {@link Element} beginning at or immediately following the specified position in the source document.
* <p>
* This is equivalent to {@link #getNextStartTag(int) getNextStartTag(pos)}<code>.</code>{@link StartTag#getElement() getElement()},
* assuming the result is not <code>null</code>.
*
* @param pos the position in the source document from which to start the search, may be out of bounds.
* @return the {@link Element} beginning at or immediately following the specified position in the source document, or <code>null</code> if none exists or the specified position is out of bounds.
*/
public Element getNextElement(final int pos) {
final StartTag startTag=getNextStartTag(pos);
return startTag==null ? null : startTag.getElement();
}
/**
* Returns the {@linkplain StartTagType#NORMAL normal} {@link Element} with the specified {@linkplain Element#getName() name} beginning at or immediately following the specified position in the source document.
* <p>
* This is equivalent to {@link #getNextStartTag(int,String) getNextStartTag(pos,name)}<code>.</code>{@link StartTag#getElement() getElement()},
* assuming the result is not <code>null</code>.
* <p>
* Specifying a <code>null</code> argument to the <code>name</code> parameter is equivalent to
* {@link #getNextElement(int) getNextElement(pos)}.
* <p>
* Specifying an argument to the <code>name</code> parameter that ends in a colon (<code>:</code>) searches for all elements
* in the specified XML namespace.
* <p>
* This method also returns elements consisting of {@linkplain Tag#isUnregistered() unregistered} tags if the specified name is not a valid {@linkplain Tag#isXMLName(CharSequence) XML tag name}.
*
* @param pos the position in the source document from which to start the search, may be out of bounds.
* @param name the {@linkplain Element#getName() name} of the element to search for.
* @return the {@linkplain StartTagType#NORMAL normal} {@link Element} with the specified {@linkplain Element#getName() name} beginning at or immediately following the specified position in the source document, or <code>null</code> if none exists or the specified position is out of bounds.
*/
public Element getNextElement(final int pos, String name) {
final StartTag startTag=getNextStartTag(pos,name);
return startTag==null ? null : startTag.getElement();
}
/**
* Returns the {@link Element} with the specified attribute name/value pair beginning at or immediately following the specified position in the source document.
* <p>
* This is equivalent to {@link #getNextStartTag(int,String,String,boolean) getNextStartTag(pos,attributeName,value,valueCaseSensitive)}<code>.</code>{@link StartTag#getElement() getElement()},
* assuming the result is not <code>null</code>.
*
* @param pos the position in the source document from which to start the search, may be out of bounds.
* @param attributeName the attribute name (case insensitive) to search for, must not be <code>null</code>.
* @param value the value of the specified attribute to search for, must not be <code>null</code>.
* @param valueCaseSensitive specifies whether the attribute value matching is case sensitive.
* @return the {@link Element} with the specified attribute name/value pair beginning at or immediately following the specified position in the source document, or <code>null</code> if none exists or the specified position is out of bounds.
*/
public Element getNextElement(final int pos, final String attributeName, final String value, final boolean valueCaseSensitive) {
final StartTag startTag=getNextStartTag(pos,attributeName,value,valueCaseSensitive);
return startTag==null ? null : startTag.getElement();
}
/**
* Returns the {@link StartTag} at or immediately preceding (or {@linkplain Segment#encloses(int) enclosing}) the specified position in the source document.
* <p>
* See the {@link Tag} class documentation for more details about the behaviour of this method.
*
* @param pos the position in the source document from which to start the search, may be out of bounds.
* @return the {@link StartTag} at or immediately preceding the specified position in the source document, or <code>null</code> if none exists or the specified position is out of bounds.
*/
public StartTag getPreviousStartTag(final int pos) {
return StartTag.getPrevious(this,pos);
}
/**
* Returns the {@link StartTag} of the specified {@linkplain StartTagType type} at or immediately preceding (or {@linkplain Segment#encloses(int) enclosing}) the specified position in the source document.
* <p>
* See the {@link Tag} class documentation for more details about the behaviour of this method.
* <p>
* This is exactly equivalent to <code>(StartTag)</code>{@link #getPreviousTag(int,TagType) getPreviousTag}<code>(pos,startTagType)</code>,
* but can be used to avoid the explicit cast to a {@link StartTag} object.
*
* @param pos the position in the source document from which to start the search, may be out of bounds.
* @param startTagType the <code>StartTagType</code> to search for.
* @return the {@link StartTag} of the specified {@linkplain StartTagType type} at or immediately preceding (or {@linkplain Segment#encloses(int) enclosing}) the specified position in the source document, or <code>null</code> if none exists or the specified position is out of bounds.
*/
public StartTag getPreviousStartTag(final int pos, final StartTagType startTagType) {
return (StartTag)getPreviousTag(pos,startTagType);
}
/**
* Returns the {@linkplain StartTagType#NORMAL normal} {@link StartTag} with the specified {@linkplain StartTag#getName() name} at or immediately preceding (or {@linkplain Segment#encloses(int) enclosing}) the specified position in the source document.
* <p>
* See the {@link Tag} class documentation for more details about the behaviour of this method.
* <p>
* Specifying a <code>null</code> argument to the <code>name</code> parameter is equivalent to
* {@link #getPreviousStartTag(int) getPreviousStartTag(pos)}.
* <p>
* This method also returns {@linkplain Tag#isUnregistered() unregistered} tags if the specified name is not a valid {@linkplain Tag#isXMLName(CharSequence) XML tag name}.
*
* @param pos the position in the source document from which to start the search, may be out of bounds.
* @param name the {@linkplain StartTag#getName() name} of the start tag to search for.
* @return the {@linkplain StartTagType#NORMAL normal} {@link StartTag} with the specified {@linkplain StartTag#getName() name} at or immediately preceding the specified position in the source document, or <code>null</code> if none exists or the specified position is out of bounds.
*/
public StartTag getPreviousStartTag(final int pos, final String name) {
return getPreviousStartTag(pos,name,StartTagType.NORMAL);
}
/**
* Returns the {@link StartTag} with the specified {@linkplain StartTag#getName() name} and {@linkplain StartTagType type} at or immediately preceding (or {@linkplain Segment#encloses(int) enclosing}) the specified position in the source document.
* <p>
* See the {@link Tag} class documentation for more details about the behaviour of this method.
* <p>
* Specifying {@link StartTagType#NORMAL} as the argument to the <code>startTagType</code> parameter is equivalent to
* {@link #getPreviousStartTag(int,String) getPreviousStartTag(pos,name)}.
*
* @param pos the position in the source document from which to start the search, may be out of bounds.
* @param name the {@linkplain StartTag#getName() name} of the start tag to search for, may be <code>null</code>.
* @param startTagType the {@linkplain StartTagType type} of the start tag to search for, must not be <code>null</code>.
* @return the {@link StartTag} with the specified {@linkplain StartTag#getName() name} and {@linkplain StartTagType type} at or immediately preceding (or {@linkplain Segment#encloses(int) enclosing}) the specified position in the source document, or <code>null</code> if none exists or the specified position is out of bounds.
*/
public StartTag getPreviousStartTag(final int pos, String name, final StartTagType startTagType) {
if (name!=null) name=name.toLowerCase();
return StartTag.getPrevious(this,pos,name,startTagType);
}
/**
* Returns the {@link StartTag} beginning at or immediately following the specified position in the source document.
* <p>
* See the {@link Tag} class documentation for more details about the behaviour of this method.
*
* @param pos the position in the source document from which to start the search, may be out of bounds.
* @return the {@link StartTag} beginning at or immediately following the specified position in the source document, or <code>null</code> if none exists or the specified position is out of bounds.
*/
public StartTag getNextStartTag(final int pos) {
return StartTag.getNext(this,pos);
}
/**
* Returns the {@link StartTag} of the specified {@linkplain StartTagType type} beginning at or immediately following the specified position in the source document.
* <p>
* See the {@link Tag} class documentation for more details about the behaviour of this method.
* <p>
* This is exactly equivalent to <code>(StartTag)</code>{@link #getNextTag(int,TagType) getNextTag}<code>(pos,startTagType)</code>,
* but can be used to avoid the explicit cast to a {@link StartTag} object.
*
* @param pos the position in the source document from which to start the search, may be out of bounds.
* @param startTagType the <code>StartTagType</code> to search for.
* @return the {@link StartTag} of the specified {@linkplain StartTagType type} beginning at or immediately following the specified position in the source document, or <code>null</code> if none exists or the specified position is out of bounds.
*/
public StartTag getNextStartTag(final int pos, final StartTagType startTagType) {
return (StartTag)getNextTag(pos,startTagType);
}
/**
* Returns the {@linkplain StartTagType#NORMAL normal} {@link StartTag} with the specified {@linkplain StartTag#getName() name} beginning at or immediately following the specified position in the source document.
* <p>
* See the {@link Tag} class documentation for more details about the behaviour of this method.
* <p>
* Specifying a <code>null</code> argument to the <code>name</code> parameter is equivalent to
* {@link #getNextStartTag(int) getNextStartTag(pos)}.
* <p>
* Specifying an argument to the <code>name</code> parameter that ends in a colon (<code>:</code>) searches for all start tags
* in the specified XML namespace.
* <p>
* This method also returns {@linkplain Tag#isUnregistered() unregistered} tags if the specified name is not a valid {@linkplain Tag#isXMLName(CharSequence) XML tag name}.
*
* @param pos the position in the source document from which to start the search, may be out of bounds.
* @param name the {@linkplain StartTag#getName() name} of the start tag to search for, may be <code>null</code>.
* @return the {@linkplain StartTagType#NORMAL normal} {@link StartTag} with the specified {@linkplain StartTag#getName() name} beginning at or immediately following the specified position in the source document, or <code>null</code> if none exists or the specified position is out of bounds.
*/
public StartTag getNextStartTag(final int pos, final String name) {
return getNextStartTag(pos,name,StartTagType.NORMAL);
}
/**
* Returns the {@link StartTag} with the specified {@linkplain StartTag#getName() name} and {@linkplain StartTagType type} beginning at or immediately following the specified position in the source document.
* <p>
* See the {@link Tag} class documentation for more details about the behaviour of this method.
* <p>
* Specifying {@link StartTagType#NORMAL} as the argument to the <code>startTagType</code> parameter is equivalent to
* {@link #getNextStartTag(int,String) getNextStartTag(pos,name)}.
*
* @param pos the position in the source document from which to start the search, may be out of bounds.
* @param name the {@linkplain StartTag#getName() name} of the start tag to search for, may be <code>null</code>.
* @param startTagType the {@linkplain StartTagType type} of the start tag to search for, must not be <code>null</code>.
* @return the {@link StartTag} with the specified {@linkplain StartTag#getName() name} and {@linkplain StartTagType type} beginning at or immediately following the specified position in the source document, or <code>null</code> if none exists or the specified position is out of bo
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -