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; } }