package jetbrains.mps.core.xml.textGen;
/*Generated by MPS */
import jetbrains.mps.text.rt.TextGenAspectBase;
import jetbrains.mps.core.xml.structure.LanguageConceptSwitch;
import org.jetbrains.annotations.Nullable;
import jetbrains.mps.text.rt.TextGenDescriptor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.mps.openapi.language.SAbstractConcept;
import jetbrains.mps.text.rt.TextGenModelOutline;
import org.jetbrains.mps.openapi.model.SNode;
import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;
public class TextGenAspectDescriptor extends TextGenAspectBase {
private final LanguageConceptSwitch myIndex = new LanguageConceptSwitch();
public TextGenAspectDescriptor() {
}
@Nullable
@Override
public TextGenDescriptor getDescriptor(@NotNull SAbstractConcept concept) {
switch (myIndex.index(concept)) {
case LanguageConceptSwitch.XmlAttribute:
return new XmlAttribute_TextGen();
case LanguageConceptSwitch.XmlCDATA:
return new XmlCDATA_TextGen();
case LanguageConceptSwitch.XmlCharRef:
return new XmlCharRef_TextGen();
case LanguageConceptSwitch.XmlCharRefValue:
return new XmlCharRefValue_TextGen();
case LanguageConceptSwitch.XmlComment:
return new XmlComment_TextGen();
case LanguageConceptSwitch.XmlCommentLine:
return new XmlCommentLine_TextGen();
case LanguageConceptSwitch.XmlDeclaration:
return new XmlDeclaration_TextGen();
case LanguageConceptSwitch.XmlDoctypeDeclaration:
return new XmlDoctypeDeclaration_TextGen();
case LanguageConceptSwitch.XmlDocument:
return new XmlDocument_TextGen();
case LanguageConceptSwitch.XmlElement:
return new XmlElement_TextGen();
case LanguageConceptSwitch.XmlEntityRef:
return new XmlEntityRef_TextGen();
case LanguageConceptSwitch.XmlEntityRefValue:
return new XmlEntityRefValue_TextGen();
case LanguageConceptSwitch.XmlExternalId:
return new XmlExternalId_TextGen();
case LanguageConceptSwitch.XmlFile:
return new XmlFile_TextGen();
case LanguageConceptSwitch.XmlNoSpaceValue:
return new XmlNoSpaceValue_TextGen();
case LanguageConceptSwitch.XmlProcessingInstruction:
return new XmlProcessingInstruction_TextGen();
case LanguageConceptSwitch.XmlProlog:
return new XmlProlog_TextGen();
case LanguageConceptSwitch.XmlText:
return new XmlText_TextGen();
case LanguageConceptSwitch.XmlTextValue:
return new XmlTextValue_TextGen();
case LanguageConceptSwitch.XmlWhitespace:
return new XmlWhitespace_TextGen();
}
return null;
}
@Override
public void breakdownToUnits(@NotNull TextGenModelOutline outline) {
for (SNode root : outline.getModel().getRootNodes()) {
if (root.getConcept().equals(MetaAdapterFactory.getConcept(0x479c7a8c02f943b5L, 0x9139d910cb22f298L, 0x5c842a42c54c94c0L, "jetbrains.mps.core.xml.structure.XmlFile"))) {
String fname = getFileName_XmlFile(root);
String ext = getFileExtension_XmlFile(root);
outline.registerTextUnit((ext == null ? fname : (fname + '.' + ext)), root);
continue;
}
}
}
private static String getFileName_XmlFile(SNode node) {
return node.getName();
}
private static String getFileExtension_XmlFile(SNode node) {
return "xml";
}
}