16 package cz.vutbr.fit.knot.annotations.fragmentUpdater;
18 import java.util.ArrayList;
19 import java.util.Arrays;
20 import java.util.Iterator;
21 import javax.xml.xpath.XPathExpression;
22 import javax.xml.xpath.XPathExpressionException;
155 this.XPathExpression = XPathHelper.XPathStringToExpression(
XPathString);
157 this.wordCount = text.split(
"\\s+").
length;
176 if (getClass() != obj.getClass()) {
189 if ((this.
text == null) ? (other.text != null) : !this.
text.equals(other.
text)) {
203 hash = 47 * hash + (this.XPathString != null ? this.XPathString.hashCode() : 0);
204 hash = 47 * hash + this.offset;
205 hash = 47 * hash + this.length;
206 hash = 47 * hash + (this.text != null ? this.text.hashCode() : 0);
234 if (path.equals(
"")) {
240 int tPos = path.indexOf(
"text()");
242 newPath = path.substring(tPos);
245 tPos = path.length();
247 newPath = path.toUpperCase().substring(0, tPos) + newPath;
250 String[] splitted = newPath.split(
"/");
252 ArrayList<String> sList =
new ArrayList<String>(Arrays.asList(splitted));
253 Iterator<String> sIt = sList.iterator();
254 String pathFragment = sIt.next();
255 if (!pathFragment.isEmpty()) {
256 if (pathFragment.endsWith(
"]")) {
257 newPath = pathFragment;
259 newPath = pathFragment +
"[1]";
262 for (; sIt.hasNext();) {
263 pathFragment = sIt.next();
264 if (pathFragment.endsWith(
"]")) {
265 newPath = newPath +
"/" + pathFragment;
267 newPath = newPath +
"/" + pathFragment +
"[1]";
void setXPathString(String XPathString)
void setXPathExpression(XPathExpression XPathExpression)
UpdatableFragment(String XPathString, int offset, int length, String text)
void setText(String text)
XPathExpression XPathExpression
void setOffset(int offset)
static String improveXPath(String path)
boolean equals(Object obj)
Class for XML document fragment.
XPathExpression getXPathExpression()
void setLength(int length)