package jetbrains.mps.core.properties.textGen;
/*Generated by MPS */
import jetbrains.mps.text.rt.TextGenAspectBase;
import jetbrains.mps.core.properties.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;
import java.nio.charset.Charset;
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.PropertiesComment:
return new PropertiesComment_TextGen();
case LanguageConceptSwitch.PropertiesDeclaration:
return new PropertiesDeclaration_TextGen();
case LanguageConceptSwitch.PropertiesFile:
return new PropertiesFile_TextGen();
case LanguageConceptSwitch.PropertiesLine:
return new PropertiesLine_TextGen();
}
return null;
}
@Override
public void breakdownToUnits(@NotNull TextGenModelOutline outline) {
for (SNode root : outline.getModel().getRootNodes()) {
if (root.getConcept().equals(MetaAdapterFactory.getConcept(0x58f98fef90ad4b72L, 0xa390fad66ec7005aL, 0x36fb0dc9fd3a2754L, "jetbrains.mps.core.properties.structure.PropertiesFile"))) {
String fname = getFileName_PropertiesFile(root);
String ext = getFileExtension_PropertiesFile(root);
outline.registerTextUnit((ext == null ? fname : (fname + '.' + ext)), Charset.forName(getEncoding_PropertiesFile()), root);
continue;
}
}
}
private static String getFileName_PropertiesFile(SNode node) {
return node.getName();
}
private static String getFileExtension_PropertiesFile(SNode node) {
return "properties";
}
private static String getEncoding_PropertiesFile() {
return "ISO-8859-1";
}
}