/** Determines the type of resource being resolved **/ private String getType(XMLResourceIdentifier resourceIdentifier) { if (resourceIdentifier instanceof XMLGrammarDescription) { XMLGrammarDescription desc = (XMLGrammarDescription) resourceIdentifier; if (XMLGrammarDescription.XML_SCHEMA.equals(desc.getGrammarType())) { return XSD_TYPE; } } return XML_TYPE; } // getType(XMLResourceIdentifier):String
public Grammar [] retrieveInitialGrammarSet (String grammarType) { synchronized (fGrammars) { int grammarSize = fGrammars.length ; Grammar [] tempGrammars = new Grammar[fGrammarCount]; int pos = 0; for (int i = 0; i < grammarSize; i++) { for (Entry e = fGrammars[i]; e != null; e = e.next) { if (e.desc.getGrammarType().equals(grammarType)) { tempGrammars[pos++] = e.grammar; } } } Grammar[] toReturn = new Grammar[pos]; System.arraycopy(tempGrammars, 0, toReturn, 0, pos); return toReturn; } } // retrieveInitialGrammarSet (String): Grammar[]
public XSModel toXSModel(short schemaVersion) { ArrayList list = new ArrayList(); for (int i = 0; i < fGrammars.length; i++) { for (Entry entry = fGrammars[i] ; entry != null ; entry = entry.next) { if (entry.desc.getGrammarType().equals(XMLGrammarDescription.XML_SCHEMA)) { list.add(entry.grammar); } } } int size = list.size(); if (size == 0) { return toXSModel(new SchemaGrammar[0], schemaVersion); } SchemaGrammar[] gs = (SchemaGrammar[])list.toArray(new SchemaGrammar[size]); return toXSModel(gs, schemaVersion); }
if (!getGrammarType().equals(((XMLGrammarDescription)desc).getGrammarType())) { return false;
public Grammar retrieveGrammar(XMLGrammarDescription desc) { if (desc.getGrammarType() == XMLGrammarDescription.XML_SCHEMA) { final String tns = ((XMLSchemaDescription) desc).getTargetNamespace(); if (fGrammarBucket != null) { Grammar grammar = fGrammarBucket.getGrammar(tns); if (grammar != null) { return grammar; } } if (SchemaSymbols.URI_SCHEMAFORSCHEMA.equals(tns)) { return SchemaGrammar.Schema4Annotations.getSchema4Annotations(fSchemaVersion); } } return null; }
private void initGrammarPool(ASModelImpl currModel, XMLGrammarPool grammarPool) { // put all the grammars in fAbstractSchema into the grammar pool. // grammarPool must never be null! Grammar[] grammars = new Grammar[1]; if ((grammars[0] = (Grammar)currModel.getGrammar()) != null) { grammarPool.cacheGrammars(grammars[0].getGrammarDescription().getGrammarType(), grammars); } Vector modelStore = currModel.getInternalASModels(); for (int i = 0; i < modelStore.size(); i++) { initGrammarPool((ASModelImpl)modelStore.elementAt(i), grammarPool); } } } // class DOMASBuilderImpl