下面列出了org.xml.sax.Locator#getLineNumber ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
// Mutation event fired by the adding of element end,
// and so lastAddedElement will be set.
super.endElement(uri, localName, qName);
if (locatorStack.size() > 0) {
Locator startLocator = locatorStack.pop();
XmlLocationData location = new XmlLocationData(
startLocator.getSystemId(),
startLocator.getLineNumber(),
startLocator.getColumnNumber(),
locator.getLineNumber(),
locator.getColumnNumber());
Element lastAddedElement = elementStack.pop();
lastAddedElement.setUserData(
XmlLocationData.LOCATION_DATA_KEY, location,
dataHandler);
}
}
/**
* Simple constructor.
*
* @param artifactName Artifact name.
* @param locator Artifact locator.
*/
public SchemaTreeNode(String artifactName, Locator locator) {
this.artifactName = artifactName;
if (locator == null) {
this.fileName = null;
}
else {
String filename = locator.getSystemId();
filename = filename.replaceAll("\u002520", " ");
// strip leading protocol
if (filename.startsWith("file:/")) {
filename = filename.substring(6);
}
this.fileName = filename;
this.lineNumber = locator.getLineNumber() - 1;
}
}
/**
* Copies a schema fragment into the javadoc of the generated class.
*/
private void addSchemaFragmentJavadoc( CClassInfo bean, XSComponent sc ) {
// first, pick it up from <documentation> if any.
String doc = builder.getBindInfo(sc).getDocumentation();
if(doc!=null)
append(bean, doc);
// then the description of where this component came from
Locator loc = sc.getLocator();
String fileName = null;
if(loc!=null) {
fileName = loc.getPublicId();
if(fileName==null)
fileName = loc.getSystemId();
}
if(fileName==null) fileName="";
String lineNumber=Messages.format( Messages.JAVADOC_LINE_UNKNOWN);
if(loc!=null && loc.getLineNumber()!=-1)
lineNumber = String.valueOf(loc.getLineNumber());
String componentName = sc.apply( new ComponentNameFunction() );
String jdoc = Messages.format( Messages.JAVADOC_HEADING, componentName, fileName, lineNumber );
append(bean,jdoc);
// then schema fragment
StringWriter out = new StringWriter();
out.write("<pre>\n");
SchemaWriter sw = new SchemaWriter(new JavadocEscapeWriter(out));
sc.visit(sw);
out.write("</pre>");
append(bean,out.toString());
}
/**
* Compares if two {@link Locator}s point to the exact same position.
*/
public static boolean equals(Locator lhs, Locator rhs) {
return lhs.getLineNumber()==rhs.getLineNumber()
&& lhs.getColumnNumber()==rhs.getColumnNumber()
&& equals(lhs.getSystemId(),rhs.getSystemId())
&& equals(lhs.getPublicId(),rhs.getPublicId());
}
private String printLocator(Locator loc) {
if( loc==null ) return "";
int line = loc.getLineNumber();
String sysId = loc.getSystemId();
if(sysId==null) sysId = Messages.format(Messages.MSG_UNKNOWN_FILE);
if( line!=-1 )
return Messages.format( Messages.MSG_LINE_X_OF_Y,
Integer.toString(line), sysId );
else
return sysId;
}
private String printLocator(Locator loc) {
if( loc==null ) return "";
int line = loc.getLineNumber();
String sysId = loc.getSystemId();
if(sysId==null) sysId = Messages.format(Messages.MSG_UNKNOWN_FILE);
if( line!=-1 )
return Messages.format( Messages.MSG_LINE_X_OF_Y,
Integer.toString(line), sysId );
else
return sysId;
}
public int getLineNumber() {
Locator l = findLocator();
if(l!=null) return l.getLineNumber();
return -1;
}
private SAXLocation(Locator locator) {
lineNumber = locator.getLineNumber();
columnNumber = locator.getColumnNumber();
publicId = locator.getPublicId();
systemId = locator.getSystemId();
}
public int getLineNumber() {
Locator l = findLocator();
if(l!=null) return l.getLineNumber();
return -1;
}
public int getLineNumber() {
Locator l = findLocator();
if(l!=null) return l.getLineNumber();
return -1;
}
public int getLineNumber() {
Locator l = findLocator();
if(l!=null) return l.getLineNumber();
return -1;
}
public int getLineNumber() {
Locator l = findLocator();
if(l!=null) return l.getLineNumber();
return -1;
}
public int getLineNumber() {
Locator l = findLocator();
if(l!=null) return l.getLineNumber();
return -1;
}
private SAXLocation(Locator locator) {
lineNumber = locator.getLineNumber();
columnNumber = locator.getColumnNumber();
publicId = locator.getPublicId();
systemId = locator.getSystemId();
}
private String getLocationString(Locator l) {
return "[" + l.getSystemId() + "#" + l.getLineNumber() + "]";
}
public int getLineNumber() {
Locator l = findLocator();
if(l!=null) return l.getLineNumber();
return -1;
}
public int getLineNumber() {
Locator l = findLocator();
if(l!=null) return l.getLineNumber();
return -1;
}
private String getLocationString(Locator l) {
return "[" + l.getSystemId() + "#" + l.getLineNumber() + "]";
}
/**
* Constructs an object from an org.xml.sax.Locator.
*
* The object's ColumnNumber, LineNumber, and URL become available from the
* values returned by the locator's getColumnNumber(), getLineNumber(), and
* getSystemId() methods respectively. Node, Object, and Offset are not
* available.
*
* @param loc the SAX Locator object that will be used to populate this
* event locator.
* @throws IllegalArgumentException if the Locator is null
*/
public ValidationEventLocatorImpl( Locator loc ) {
if( loc == null ) {
throw new IllegalArgumentException(
Messages.format( Messages.MUST_NOT_BE_NULL, "loc" ) );
}
this.url = toURL(loc.getSystemId());
this.columnNumber = loc.getColumnNumber();
this.lineNumber = loc.getLineNumber();
}
/**
* Constructs an object from an org.xml.sax.Locator.
*
* The object's ColumnNumber, LineNumber, and URL become available from the
* values returned by the locator's getColumnNumber(), getLineNumber(), and
* getSystemId() methods respectively. Node, Object, and Offset are not
* available.
*
* @param loc the SAX Locator object that will be used to populate this
* event locator.
* @throws IllegalArgumentException if the Locator is null
*/
public ValidationEventLocatorImpl( Locator loc ) {
if( loc == null ) {
throw new IllegalArgumentException(
Messages.format( Messages.MUST_NOT_BE_NULL, "loc" ) );
}
this.url = toURL(loc.getSystemId());
this.columnNumber = loc.getColumnNumber();
this.lineNumber = loc.getLineNumber();
}