package org.eclipse.iee.editor.text.edit;
import org.eclipse.iee.core.document.text.Document;
import org.eclipse.iee.core.document.text.Span;
import org.eclipse.iee.core.document.text.Text;
public class CopyVisitor extends BaseVisitor<CopyCtx, String> {
@Override
public String visitText(Text text, CopyCtx ctx) {
int from = ctx.getFrom().getOffset();
int to = ctx.getTo().getOffset();
if (ctx.isFrom(text)) {
if (ctx.isTo(text)) {
ctx.append(text.getText().substring(from, to));
} else {
ctx.append(text.getText().substring(from));
}
} else if (ctx.isTo(text)) {
ctx.append(text.getText().substring(0, to));
} else if (ctx.isStarted()) {
ctx.append(text.getText());
}
if (ctx.isFrom(text)) {
ctx.setStarted(true);
}
if (ctx.isTo(text) ) {
ctx.setStarted(false);
}
return ctx.getString();
}
@Override
public String visitDocument(Document document, CopyCtx ctx) {
traverse(document, ctx);
return ctx.getString();
}
@Override
public String visitSpan(Span span, CopyCtx ctx) {
traverse(span, ctx);
return ctx.getString();
}
}