package jetbrains.mps.baseLanguage.textGen;
/*Generated by MPS */
import jetbrains.mps.text.rt.TextGenAspectBase;
import jetbrains.mps.baseLanguage.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 jetbrains.mps.text.TextUnit;
import jetbrains.mps.text.impl.BufferLayoutBuilder;
import jetbrains.mps.text.impl.RegularTextUnit;
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.AdditionalForLoopVariable:
return new AdditionalForLoopVariable_TextGen();
case LanguageConceptSwitch.AndExpression:
return new AndExpression_TextGen();
case LanguageConceptSwitch.Annotation:
return new Annotation_TextGen();
case LanguageConceptSwitch.AnnotationInstance:
return new AnnotationInstance_TextGen();
case LanguageConceptSwitch.AnnotationInstanceExpression:
return new AnnotationInstanceExpression_TextGen();
case LanguageConceptSwitch.AnnotationInstanceValue:
return new AnnotationInstanceValue_TextGen();
case LanguageConceptSwitch.AnnotationMethodDeclaration:
return new AnnotationMethodDeclaration_TextGen();
case LanguageConceptSwitch.AnonymousClass:
return new AnonymousClass_TextGen();
case LanguageConceptSwitch.AnonymousClassCreator:
return new AnonymousClassCreator_TextGen();
case LanguageConceptSwitch.ArrayAccessExpression:
return new ArrayAccessExpression_TextGen();
case LanguageConceptSwitch.ArrayClassExpression:
return new ArrayClassExpression_TextGen();
case LanguageConceptSwitch.ArrayCloneOperation:
return new ArrayCloneOperation_TextGen();
case LanguageConceptSwitch.ArrayCreator:
return new ArrayCreator_TextGen();
case LanguageConceptSwitch.ArrayCreatorWithInitializer:
return new ArrayCreatorWithInitializer_TextGen();
case LanguageConceptSwitch.ArrayLengthOperation:
return new ArrayLengthOperation_TextGen();
case LanguageConceptSwitch.ArrayLiteral:
return new ArrayLiteral_TextGen();
case LanguageConceptSwitch.ArrayType:
return new ArrayType_TextGen();
case LanguageConceptSwitch.AssertStatement:
return new AssertStatement_TextGen();
case LanguageConceptSwitch.BaseAssignmentExpression:
return new BaseAssignmentExpression_TextGen();
case LanguageConceptSwitch.BitwiseAndExpression:
return new BitwiseAndExpression_TextGen();
case LanguageConceptSwitch.BitwiseNotExpression:
return new BitwiseNotExpression_TextGen();
case LanguageConceptSwitch.BitwiseOrExpression:
return new BitwiseOrExpression_TextGen();
case LanguageConceptSwitch.BitwiseXorExpression:
return new BitwiseXorExpression_TextGen();
case LanguageConceptSwitch.BlockStatement:
return new BlockStatement_TextGen();
case LanguageConceptSwitch.BooleanConstant:
return new BooleanConstant_TextGen();
case LanguageConceptSwitch.BooleanType:
return new BooleanType_TextGen();
case LanguageConceptSwitch.BreakStatement:
return new BreakStatement_TextGen();
case LanguageConceptSwitch.ByteType:
return new ByteType_TextGen();
case LanguageConceptSwitch.CastExpression:
return new CastExpression_TextGen();
case LanguageConceptSwitch.CatchClause:
return new CatchClause_TextGen();
case LanguageConceptSwitch.CharConstant:
return new CharConstant_TextGen();
case LanguageConceptSwitch.CharType:
return new CharType_TextGen();
case LanguageConceptSwitch.ClassConcept:
return new ClassConcept_TextGen();
case LanguageConceptSwitch.ClassCreator:
return new ClassCreator_TextGen();
case LanguageConceptSwitch.ClassifierClassExpression:
return new ClassifierClassExpression_TextGen();
case LanguageConceptSwitch.ClassifierType:
return new ClassifierType_TextGen();
case LanguageConceptSwitch.CommentedStatement:
return new CommentedStatement_TextGen();
case LanguageConceptSwitch.CommentedStatementsBlock:
return new CommentedStatementsBlock_TextGen();
case LanguageConceptSwitch.ConceptFunctionParameter:
return new ConceptFunctionParameter_TextGen();
case LanguageConceptSwitch.ConstructorDeclaration:
return new ConstructorDeclaration_TextGen();
case LanguageConceptSwitch.ContinueStatement:
return new ContinueStatement_TextGen();
case LanguageConceptSwitch.DefaultClassCreator:
return new DefaultClassCreator_TextGen();
case LanguageConceptSwitch.DimensionExpression:
return new DimensionExpression_TextGen();
case LanguageConceptSwitch.DivExpression:
return new DivExpression_TextGen();
case LanguageConceptSwitch.DoWhileStatement:
return new DoWhileStatement_TextGen();
case LanguageConceptSwitch.DotExpression:
return new DotExpression_TextGen();
case LanguageConceptSwitch.DoubleType:
return new DoubleType_TextGen();
case LanguageConceptSwitch.ElsifClause:
return new ElsifClause_TextGen();
case LanguageConceptSwitch.EnumClass:
return new EnumClass_TextGen();
case LanguageConceptSwitch.EnumConstantDeclaration:
return new EnumConstantDeclaration_TextGen();
case LanguageConceptSwitch.EnumConstantReference:
return new EnumConstantReference_TextGen();
case LanguageConceptSwitch.EnumValueOfExpression:
return new EnumValueOfExpression_TextGen();
case LanguageConceptSwitch.EnumValuesExpression:
return new EnumValuesExpression_TextGen();
case LanguageConceptSwitch.EqualsExpression:
return new EqualsExpression_TextGen();
case LanguageConceptSwitch.ExpressionStatement:
return new ExpressionStatement_TextGen();
case LanguageConceptSwitch.FieldDeclaration:
return new FieldDeclaration_TextGen();
case LanguageConceptSwitch.FieldReferenceOperation:
return new FieldReferenceOperation_TextGen();
case LanguageConceptSwitch.FloatType:
return new FloatType_TextGen();
case LanguageConceptSwitch.FloatingPointConstant:
return new FloatingPointConstant_TextGen();
case LanguageConceptSwitch.FloatingPointFloatConstant:
return new FloatingPointFloatConstant_TextGen();
case LanguageConceptSwitch.ForStatement:
return new ForStatement_TextGen();
case LanguageConceptSwitch.ForeachStatement:
return new ForeachStatement_TextGen();
case LanguageConceptSwitch.GenericNewExpression:
return new GenericNewExpression_TextGen();
case LanguageConceptSwitch.GreaterThanExpression:
return new GreaterThanExpression_TextGen();
case LanguageConceptSwitch.GreaterThanOrEqualsExpression:
return new GreaterThanOrEqualsExpression_TextGen();
case LanguageConceptSwitch.HexIntegerLiteral:
return new HexIntegerLiteral_TextGen();
case LanguageConceptSwitch.IfStatement:
return new IfStatement_TextGen();
case LanguageConceptSwitch.ImplicitAnnotationInstanceValue:
return new ImplicitAnnotationInstanceValue_TextGen();
case LanguageConceptSwitch.InstanceInitializer:
return new InstanceInitializer_TextGen();
case LanguageConceptSwitch.InstanceMethodCallOperation:
return new InstanceMethodCallOperation_TextGen();
case LanguageConceptSwitch.InstanceMethodDeclaration:
return new InstanceMethodDeclaration_TextGen();
case LanguageConceptSwitch.InstanceOfExpression:
return new InstanceOfExpression_TextGen();
case LanguageConceptSwitch.IntegerConstant:
return new IntegerConstant_TextGen();
case LanguageConceptSwitch.IntegerType:
return new IntegerType_TextGen();
case LanguageConceptSwitch.Interface:
return new Interface_TextGen();
case LanguageConceptSwitch.LessThanExpression:
return new LessThanExpression_TextGen();
case LanguageConceptSwitch.LessThanOrEqualsExpression:
return new LessThanOrEqualsExpression_TextGen();
case LanguageConceptSwitch.LocalMethodCall:
return new LocalMethodCall_TextGen();
case LanguageConceptSwitch.LocalVariableDeclaration:
return new LocalVariableDeclaration_TextGen();
case LanguageConceptSwitch.LocalVariableDeclarationStatement:
return new LocalVariableDeclarationStatement_TextGen();
case LanguageConceptSwitch.LongLiteral:
return new LongLiteral_TextGen();
case LanguageConceptSwitch.LongType:
return new LongType_TextGen();
case LanguageConceptSwitch.LowerBoundType:
return new LowerBoundType_TextGen();
case LanguageConceptSwitch.MinusExpression:
return new MinusExpression_TextGen();
case LanguageConceptSwitch.MulExpression:
return new MulExpression_TextGen();
case LanguageConceptSwitch.NestedNewExpression:
return new NestedNewExpression_TextGen();
case LanguageConceptSwitch.NotEqualsExpression:
return new NotEqualsExpression_TextGen();
case LanguageConceptSwitch.NotExpression:
return new NotExpression_TextGen();
case LanguageConceptSwitch.NullLiteral:
return new NullLiteral_TextGen();
case LanguageConceptSwitch.OrExpression:
return new OrExpression_TextGen();
case LanguageConceptSwitch.ParameterDeclaration:
return new ParameterDeclaration_TextGen();
case LanguageConceptSwitch.ParenthesizedExpression:
return new ParenthesizedExpression_TextGen();
case LanguageConceptSwitch.PlaceholderMember:
return new PlaceholderMember_TextGen();
case LanguageConceptSwitch.PlusExpression:
return new PlusExpression_TextGen();
case LanguageConceptSwitch.PostfixDecrementExpression:
return new PostfixDecrementExpression_TextGen();
case LanguageConceptSwitch.PostfixIncrementExpression:
return new PostfixIncrementExpression_TextGen();
case LanguageConceptSwitch.PrefixDecrementExpression:
return new PrefixDecrementExpression_TextGen();
case LanguageConceptSwitch.PrefixIncrementExpression:
return new PrefixIncrementExpression_TextGen();
case LanguageConceptSwitch.PrimitiveClassExpression:
return new PrimitiveClassExpression_TextGen();
case LanguageConceptSwitch.QualifiedSuperMethodCall:
return new QualifiedSuperMethodCall_TextGen();
case LanguageConceptSwitch.RemExpression:
return new RemExpression_TextGen();
case LanguageConceptSwitch.RemarkStatement:
return new RemarkStatement_TextGen();
case LanguageConceptSwitch.ReturnStatement:
return new ReturnStatement_TextGen();
case LanguageConceptSwitch.ShiftLeftExpression:
return new ShiftLeftExpression_TextGen();
case LanguageConceptSwitch.ShiftRightExpression:
return new ShiftRightExpression_TextGen();
case LanguageConceptSwitch.ShiftRightUnsignedExpression:
return new ShiftRightUnsignedExpression_TextGen();
case LanguageConceptSwitch.ShortType:
return new ShortType_TextGen();
case LanguageConceptSwitch.SingleLineComment:
return new SingleLineComment_TextGen();
case LanguageConceptSwitch.Statement:
return new Statement_TextGen();
case LanguageConceptSwitch.StatementCommentPart:
return new StatementCommentPart_TextGen();
case LanguageConceptSwitch.StatementList:
return new StatementList_TextGen();
case LanguageConceptSwitch.StaticFieldDeclaration:
return new StaticFieldDeclaration_TextGen();
case LanguageConceptSwitch.StaticFieldReference:
return new StaticFieldReference_TextGen();
case LanguageConceptSwitch.StaticInitializer:
return new StaticInitializer_TextGen();
case LanguageConceptSwitch.StaticMethodCall:
return new StaticMethodCall_TextGen();
case LanguageConceptSwitch.StaticMethodDeclaration:
return new StaticMethodDeclaration_TextGen();
case LanguageConceptSwitch.StringLiteral:
return new StringLiteral_TextGen();
case LanguageConceptSwitch.StringType:
return new StringType_TextGen();
case LanguageConceptSwitch.SuperConstructorInvocation:
return new SuperConstructorInvocation_TextGen();
case LanguageConceptSwitch.SuperMethodCall:
return new SuperMethodCall_TextGen();
case LanguageConceptSwitch.SwitchStatement:
return new SwitchStatement_TextGen();
case LanguageConceptSwitch.SynchronizedStatement:
return new SynchronizedStatement_TextGen();
case LanguageConceptSwitch.TernaryOperatorExpression:
return new TernaryOperatorExpression_TextGen();
case LanguageConceptSwitch.TextCommentPart:
return new TextCommentPart_TextGen();
case LanguageConceptSwitch.ThisConstructorInvocation:
return new ThisConstructorInvocation_TextGen();
case LanguageConceptSwitch.ThisExpression:
return new ThisExpression_TextGen();
case LanguageConceptSwitch.ThrowStatement:
return new ThrowStatement_TextGen();
case LanguageConceptSwitch.TryCatchStatement:
return new TryCatchStatement_TextGen();
case LanguageConceptSwitch.TryStatement:
return new TryStatement_TextGen();
case LanguageConceptSwitch.TypeVariableDeclaration:
return new TypeVariableDeclaration_TextGen();
case LanguageConceptSwitch.TypeVariableReference:
return new TypeVariableReference_TextGen();
case LanguageConceptSwitch.UnaryMinus:
return new UnaryMinus_TextGen();
case LanguageConceptSwitch.UpperBoundType:
return new UpperBoundType_TextGen();
case LanguageConceptSwitch.VarType:
return new VarType_TextGen();
case LanguageConceptSwitch.VariableArityType:
return new VariableArityType_TextGen();
case LanguageConceptSwitch.VariableDeclaration:
return new VariableDeclaration_TextGen();
case LanguageConceptSwitch.VariableReference:
return new VariableReference_TextGen();
case LanguageConceptSwitch.Visibility:
return new Visibility_TextGen();
case LanguageConceptSwitch.VoidType:
return new VoidType_TextGen();
case LanguageConceptSwitch.WhileStatement:
return new WhileStatement_TextGen();
case LanguageConceptSwitch.WildCardType:
return new WildCardType_TextGen();
}
return null;
}
@Override
public void breakdownToUnits(@NotNull TextGenModelOutline outline) {
for (SNode root : outline.getModel().getRootNodes()) {
if (root.getConcept().equals(MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x114a69dc80cL, "jetbrains.mps.baseLanguage.structure.Annotation"))) {
String fname = getFileName_Annotation(root);
String ext = getFileExtension_Annotation(root);
outline.registerTextUnit(createTextUnit0((ext == null ? fname : (fname + '.' + ext)), root));
continue;
}
if (root.getConcept().equals(MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c108ca66L, "jetbrains.mps.baseLanguage.structure.ClassConcept"))) {
String fname = getFileName_ClassConcept(root);
String ext = getFileExtension_ClassConcept(root);
outline.registerTextUnit(createTextUnit1((ext == null ? fname : (fname + '.' + ext)), root));
continue;
}
if (root.getConcept().equals(MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x101edd46144L, "jetbrains.mps.baseLanguage.structure.Interface"))) {
String fname = getFileName_Interface(root);
String ext = getFileExtension_Interface(root);
outline.registerTextUnit(createTextUnit2((ext == null ? fname : (fname + '.' + ext)), root));
continue;
}
if (root.getConcept().equals(MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xfc367070a5L, "jetbrains.mps.baseLanguage.structure.EnumClass"))) {
String fname = getFileName_EnumClass(root);
String ext = getFileExtension_EnumClass(root);
outline.registerTextUnit(createTextUnit3((ext == null ? fname : (fname + '.' + ext)), root));
continue;
}
}
}
private static String getFileName_Annotation(SNode node) {
return node.getName();
}
private static String getFileName_ClassConcept(SNode node) {
return node.getName();
}
private static String getFileName_Interface(SNode node) {
return node.getName();
}
private static String getFileName_EnumClass(SNode node) {
return node.getName();
}
private static String getFileExtension_Annotation(SNode node) {
return "java";
}
private static String getFileExtension_ClassConcept(SNode node) {
return "java";
}
private static String getFileExtension_Interface(SNode node) {
return "java";
}
private static String getFileExtension_EnumClass(SNode node) {
return "java";
}
private static TextUnit createTextUnit0(String filename, SNode node) {
BufferLayoutBuilder lb = new BufferLayoutBuilder();
lb.add("HEADER");
lb.add("IMPORTS");
lb.add("SEPARATOR");
lb.add("BODY");
lb.activate("BODY");
RegularTextUnit rv = new RegularTextUnit(node, filename, null);
rv.setBufferLayout(lb.create());
rv.addContextObject("ctx", BaseLanguageTextGen.contextObjectInstance_ctx(node));
return rv;
}
private static TextUnit createTextUnit1(String filename, SNode node) {
BufferLayoutBuilder lb = new BufferLayoutBuilder();
lb.add("HEADER");
lb.add("IMPORTS");
lb.add("SEPARATOR");
lb.add("BODY");
lb.activate("BODY");
RegularTextUnit rv = new RegularTextUnit(node, filename, null);
rv.setBufferLayout(lb.create());
rv.addContextObject("ctx", BaseLanguageTextGen.contextObjectInstance_ctx(node));
return rv;
}
private static TextUnit createTextUnit2(String filename, SNode node) {
BufferLayoutBuilder lb = new BufferLayoutBuilder();
lb.add("HEADER");
lb.add("IMPORTS");
lb.add("SEPARATOR");
lb.add("BODY");
lb.activate("BODY");
RegularTextUnit rv = new RegularTextUnit(node, filename, null);
rv.setBufferLayout(lb.create());
rv.addContextObject("ctx", BaseLanguageTextGen.contextObjectInstance_ctx(node));
return rv;
}
private static TextUnit createTextUnit3(String filename, SNode node) {
BufferLayoutBuilder lb = new BufferLayoutBuilder();
lb.add("HEADER");
lb.add("IMPORTS");
lb.add("SEPARATOR");
lb.add("BODY");
lb.activate("BODY");
RegularTextUnit rv = new RegularTextUnit(node, filename, null);
rv.setBufferLayout(lb.create());
rv.addContextObject("ctx", BaseLanguageTextGen.contextObjectInstance_ctx(node));
return rv;
}
}