com.sun.xml.xsom.impl.parser.SchemaDocumentImpl Maven / Gradle / Ivy
Go to download
Old JAXB Binding Compiler. Contains source code needed for binding customization files into java sources.
In other words: the *tool* to generate java classes for the given xml representation.
package com.sun.xml.xsom.impl.parser;
import com.sun.xml.xsom.impl.SchemaImpl;
import com.sun.xml.xsom.parser.SchemaDocument;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
/**
* {@link SchemaDocument} implementation.
*
* @author Kohsuke Kawaguchi
*/
public final class SchemaDocumentImpl implements SchemaDocument
{
private final SchemaImpl schema;
/**
* URI of the schema document to be parsed. Can be null.
*/
private final String schemaDocumentURI;
/**
* {@link SchemaDocumentImpl}s that are referenced from this document.
*/
final Set references = new HashSet();
/**
* {@link SchemaDocumentImpl}s that are referencing this document.
*/
final Set referers = new HashSet();
protected SchemaDocumentImpl(SchemaImpl schema, String _schemaDocumentURI) {
this.schema = schema;
this.schemaDocumentURI = _schemaDocumentURI;
}
public String getSystemId() {
return schemaDocumentURI;
}
public String getTargetNamespace() {
return schema.getTargetNamespace();
}
public SchemaImpl getSchema() {
return schema;
}
public Set getReferencedDocuments() {
return Collections.unmodifiableSet(references);
}
public Set getIncludedDocuments() {
return getImportedDocuments(this.getTargetNamespace());
}
public Set getImportedDocuments(String targetNamespace) {
if(targetNamespace==null)
throw new IllegalArgumentException();
Set r = new HashSet();
for (SchemaDocumentImpl doc : references) {
if(doc.getTargetNamespace().equals(targetNamespace))
r.add(doc);
}
return Collections.unmodifiableSet(r);
}
public boolean includes(SchemaDocument doc) {
if(!references.contains(doc))
return false;
return doc.getSchema()==schema;
}
public boolean imports(SchemaDocument doc) {
if(!references.contains(doc))
return false;
return doc.getSchema()!=schema;
}
public Set getReferers() {
return Collections.unmodifiableSet(referers);
}
public boolean equals(Object o) {
SchemaDocumentImpl rhs = (SchemaDocumentImpl) o;
if( this.schemaDocumentURI==null || rhs.schemaDocumentURI==null)
return this==rhs;
if(!schemaDocumentURI.equals(rhs.schemaDocumentURI) )
return false;
return this.schema==rhs.schema;
}
public int hashCode() {
if(schemaDocumentURI==null)
return super.hashCode();
return schemaDocumentURI.hashCode()^this.schema.hashCode();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy