blob: da03a1c30755b0dfd3a5dc7a95c6c38c6f7150bd [file] [log] [blame]
/*
* Copyright 2002-2007 Sascha Weinreuter
*
* 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 org.intellij.plugins.xsltDebugger.rt.engine;
import java.io.Serializable;
import java.util.List;
/**
* Created by IntelliJ IDEA.
* User: sweinreuter
* Date: 08.06.2007
*/
public interface OutputEventQueue {
int START_DOCUMENT = 0;
int END_DOCUMENT = 99;
int START_ELEMENT = 1;
int END_ELEMENT = 2;
int ATTRIBUTE = 3;
int CHARACTERS = 4;
int COMMENT = 5;
int PI = 6;
int TRACE_POINT = 20;
void setEnabled(boolean b);
List<NodeEvent> getEvents();
final class NodeEvent implements Serializable {
public static final class QName implements Serializable {
public String myPrefix;
public String myLocalName;
public String myURI;
public QName(String prefix, String localName, String URI) {
myPrefix = prefix;
myLocalName = localName;
myURI = URI;
}
public QName(String qName, String uri) {
myURI = uri;
final String[] parts = qName.split(":");
if (parts.length == 2) {
myPrefix = parts[0];
myLocalName = parts[1];
} else {
myPrefix = null;
myLocalName = parts[0];
}
}
public QName(String name) {
myLocalName = name;
myPrefix = null;
myURI = null;
}
public String getQName() {
return myPrefix != null && myPrefix.length() > 0 ? myPrefix + ":" + myLocalName : myLocalName;
}
}
private final int myType;
public String myValue;
public QName myQName;
public String myURI;
private int myLineNumber;
public NodeEvent(int type, QName qName, String value) {
myType = type;
myQName = qName;
myValue = value;
}
public int getType() {
return myType;
}
public QName getQName() {
return myQName;
}
public String getValue() {
return myValue;
}
public void setLocation(String uri, int lineNumber) {
myURI = uri;
myLineNumber = lineNumber;
}
public int getLineNumber() {
return myLineNumber;
}
public String getURI() {
return myURI;
}
}
}