Class JavaParsingAtomicQueueGenerator

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static java.lang.String INDENT_LEVEL  
      protected java.lang.String sourceFileName  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      private static <T> T buildGenerator​(java.lang.Class<? extends T> generatorClass, java.lang.String fileName)  
      protected java.lang.String capitalise​(java.lang.String s)  
      protected com.github.javaparser.ast.type.ClassOrInterfaceType classType​(java.lang.String className)  
      protected com.github.javaparser.ast.body.FieldDeclaration declareLongFieldUpdater​(java.lang.String className, java.lang.String variableName)
      Generates something like private static final AtomicLongFieldUpdater P_INDEX_UPDATER = AtomicLongFieldUpdater.newUpdater(MpmcAtomicArrayQueueProducerIndexField.class, "producerIndex");
      protected com.github.javaparser.ast.stmt.BlockStmt fieldAssignment​(java.lang.String fieldName, java.lang.String valueName)
      Generates something like field = newValue
      protected com.github.javaparser.ast.body.FieldDeclaration fieldDeclarationWithInitialiser​(com.github.javaparser.ast.type.Type type, java.lang.String name, com.github.javaparser.ast.expr.Expression initializer, com.github.javaparser.ast.Modifier.Keyword... modifiers)
      Generates something like private static final AtomicLongFieldUpdater P_INDEX_UPDATER = AtomicLongFieldUpdater.newUpdater(MpmcAtomicArrayQueueProducerIndexField.class, "producerIndex");
      protected com.github.javaparser.ast.stmt.BlockStmt fieldUpdaterCompareAndSet​(java.lang.String fieldUpdaterFieldName, java.lang.String expectedValueName, java.lang.String newValueName)
      Generates something like return P_INDEX_UPDATER.compareAndSet(this, expectedValue, newValue)
      (package private) abstract java.lang.String fieldUpdaterFieldName​(java.lang.String fieldName)  
      protected com.github.javaparser.ast.stmt.BlockStmt fieldUpdaterLazySet​(java.lang.String fieldUpdaterFieldName, java.lang.String newValueName)
      Generates something like P_INDEX_UPDATER.lazySet(this, newValue)
      protected java.lang.String formatMultilineJavadoc​(int indent, java.lang.String... lines)  
      protected com.github.javaparser.ast.ImportDeclaration importDeclaration​(java.lang.String name)  
      protected boolean isCommentPresent​(com.github.javaparser.ast.Node node, java.lang.String wanted)  
      protected boolean isRefArray​(com.github.javaparser.ast.type.Type in, java.lang.String refClassName)  
      protected boolean isRefType​(com.github.javaparser.ast.type.Type in, java.lang.String className)  
      (package private) static void main​(java.lang.Class<? extends JavaParsingAtomicQueueGenerator> generatorClass, java.lang.String[] args)  
      protected com.github.javaparser.ast.expr.MethodCallExpr methodCallExpr​(java.lang.String owner, java.lang.String method, com.github.javaparser.ast.expr.Expression... args)  
      protected com.github.javaparser.ast.expr.MethodCallExpr newAtomicLongFieldUpdater​(java.lang.String className, java.lang.String variableName)  
      (package private) abstract void organiseImports​(com.github.javaparser.ast.CompilationUnit cu)  
      private void processSpecialNodeTypes​(com.github.javaparser.ast.body.Parameter node)  
      private void processSpecialNodeTypes​(com.github.javaparser.ast.body.VariableDeclarator node)  
      (package private) abstract void processSpecialNodeTypes​(com.github.javaparser.ast.nodeTypes.NodeWithType<?,​com.github.javaparser.ast.type.Type> node, java.lang.String name)  
      protected void removeStaticFieldsAndInitialisers​(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration node)  
      protected com.github.javaparser.ast.stmt.BlockStmt returnField​(java.lang.String fieldName)
      Generates something like return field
      protected com.github.javaparser.ast.type.ClassOrInterfaceType simpleParametricType​(java.lang.String className, java.lang.String... typeArgs)  
      (package private) com.github.javaparser.ast.ImportDeclaration staticImportDeclaration​(java.lang.String name)  
      (package private) abstract java.lang.String translateQueueName​(java.lang.String fileName)  
      void visit​(com.github.javaparser.ast.body.Parameter n, java.lang.Void arg)  
      void visit​(com.github.javaparser.ast.body.VariableDeclarator n, java.lang.Void arg)  
      void visit​(com.github.javaparser.ast.expr.FieldAccessExpr n, java.lang.Void arg)  
      void visit​(com.github.javaparser.ast.PackageDeclaration n, java.lang.Void arg)  
      • Methods inherited from class com.github.javaparser.ast.visitor.VoidVisitorAdapter

        visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • sourceFileName

        protected final java.lang.String sourceFileName
    • Constructor Detail

      • JavaParsingAtomicQueueGenerator

        JavaParsingAtomicQueueGenerator​(java.lang.String sourceFileName)
    • Method Detail

      • main

        static void main​(java.lang.Class<? extends JavaParsingAtomicQueueGenerator> generatorClass,
                         java.lang.String[] args)
                  throws java.lang.Exception
        Throws:
        java.lang.Exception
      • organiseImports

        abstract void organiseImports​(com.github.javaparser.ast.CompilationUnit cu)
      • translateQueueName

        abstract java.lang.String translateQueueName​(java.lang.String fileName)
      • processSpecialNodeTypes

        abstract void processSpecialNodeTypes​(com.github.javaparser.ast.nodeTypes.NodeWithType<?,​com.github.javaparser.ast.type.Type> node,
                                              java.lang.String name)
      • fieldUpdaterFieldName

        abstract java.lang.String fieldUpdaterFieldName​(java.lang.String fieldName)
      • visit

        public void visit​(com.github.javaparser.ast.expr.FieldAccessExpr n,
                          java.lang.Void arg)
        Specified by:
        visit in interface com.github.javaparser.ast.visitor.VoidVisitor<java.lang.Void>
        Overrides:
        visit in class com.github.javaparser.ast.visitor.VoidVisitorAdapter<java.lang.Void>
      • visit

        public void visit​(com.github.javaparser.ast.PackageDeclaration n,
                          java.lang.Void arg)
        Specified by:
        visit in interface com.github.javaparser.ast.visitor.VoidVisitor<java.lang.Void>
        Overrides:
        visit in class com.github.javaparser.ast.visitor.VoidVisitorAdapter<java.lang.Void>
      • visit

        public void visit​(com.github.javaparser.ast.body.Parameter n,
                          java.lang.Void arg)
        Specified by:
        visit in interface com.github.javaparser.ast.visitor.VoidVisitor<java.lang.Void>
        Overrides:
        visit in class com.github.javaparser.ast.visitor.VoidVisitorAdapter<java.lang.Void>
      • visit

        public void visit​(com.github.javaparser.ast.body.VariableDeclarator n,
                          java.lang.Void arg)
        Specified by:
        visit in interface com.github.javaparser.ast.visitor.VoidVisitor<java.lang.Void>
        Overrides:
        visit in class com.github.javaparser.ast.visitor.VoidVisitorAdapter<java.lang.Void>
      • processSpecialNodeTypes

        private void processSpecialNodeTypes​(com.github.javaparser.ast.body.Parameter node)
      • processSpecialNodeTypes

        private void processSpecialNodeTypes​(com.github.javaparser.ast.body.VariableDeclarator node)
      • isCommentPresent

        protected boolean isCommentPresent​(com.github.javaparser.ast.Node node,
                                           java.lang.String wanted)
      • removeStaticFieldsAndInitialisers

        protected void removeStaticFieldsAndInitialisers​(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration node)
      • capitalise

        protected java.lang.String capitalise​(java.lang.String s)
      • formatMultilineJavadoc

        protected java.lang.String formatMultilineJavadoc​(int indent,
                                                          java.lang.String... lines)
      • fieldUpdaterLazySet

        protected com.github.javaparser.ast.stmt.BlockStmt fieldUpdaterLazySet​(java.lang.String fieldUpdaterFieldName,
                                                                               java.lang.String newValueName)
        Generates something like P_INDEX_UPDATER.lazySet(this, newValue)
        Parameters:
        fieldUpdaterFieldName -
        newValueName -
        Returns:
      • fieldUpdaterCompareAndSet

        protected com.github.javaparser.ast.stmt.BlockStmt fieldUpdaterCompareAndSet​(java.lang.String fieldUpdaterFieldName,
                                                                                     java.lang.String expectedValueName,
                                                                                     java.lang.String newValueName)
        Generates something like return P_INDEX_UPDATER.compareAndSet(this, expectedValue, newValue)
        Parameters:
        fieldUpdaterFieldName -
        expectedValueName -
        newValueName -
        Returns:
      • methodCallExpr

        protected com.github.javaparser.ast.expr.MethodCallExpr methodCallExpr​(java.lang.String owner,
                                                                               java.lang.String method,
                                                                               com.github.javaparser.ast.expr.Expression... args)
      • fieldAssignment

        protected com.github.javaparser.ast.stmt.BlockStmt fieldAssignment​(java.lang.String fieldName,
                                                                           java.lang.String valueName)
        Generates something like field = newValue
        Parameters:
        fieldName -
        valueName -
        Returns:
      • fieldDeclarationWithInitialiser

        protected com.github.javaparser.ast.body.FieldDeclaration fieldDeclarationWithInitialiser​(com.github.javaparser.ast.type.Type type,
                                                                                                  java.lang.String name,
                                                                                                  com.github.javaparser.ast.expr.Expression initializer,
                                                                                                  com.github.javaparser.ast.Modifier.Keyword... modifiers)
        Generates something like private static final AtomicLongFieldUpdater P_INDEX_UPDATER = AtomicLongFieldUpdater.newUpdater(MpmcAtomicArrayQueueProducerIndexField.class, "producerIndex");
        Parameters:
        type -
        name -
        initializer -
        modifiers -
        Returns:
      • declareLongFieldUpdater

        protected com.github.javaparser.ast.body.FieldDeclaration declareLongFieldUpdater​(java.lang.String className,
                                                                                          java.lang.String variableName)
        Generates something like private static final AtomicLongFieldUpdater P_INDEX_UPDATER = AtomicLongFieldUpdater.newUpdater(MpmcAtomicArrayQueueProducerIndexField.class, "producerIndex");
        Parameters:
        className -
        variableName -
        Returns:
      • newAtomicLongFieldUpdater

        protected com.github.javaparser.ast.expr.MethodCallExpr newAtomicLongFieldUpdater​(java.lang.String className,
                                                                                          java.lang.String variableName)
      • simpleParametricType

        protected com.github.javaparser.ast.type.ClassOrInterfaceType simpleParametricType​(java.lang.String className,
                                                                                           java.lang.String... typeArgs)
      • classType

        protected com.github.javaparser.ast.type.ClassOrInterfaceType classType​(java.lang.String className)
      • importDeclaration

        protected com.github.javaparser.ast.ImportDeclaration importDeclaration​(java.lang.String name)
      • returnField

        protected com.github.javaparser.ast.stmt.BlockStmt returnField​(java.lang.String fieldName)
        Generates something like return field
        Parameters:
        fieldName -
        Returns:
      • isRefArray

        protected boolean isRefArray​(com.github.javaparser.ast.type.Type in,
                                     java.lang.String refClassName)
      • isRefType

        protected boolean isRefType​(com.github.javaparser.ast.type.Type in,
                                    java.lang.String className)
      • buildGenerator

        private static <T> T buildGenerator​(java.lang.Class<? extends T> generatorClass,
                                            java.lang.String fileName)
                                     throws java.lang.Exception
        Throws:
        java.lang.Exception
      • staticImportDeclaration

        com.github.javaparser.ast.ImportDeclaration staticImportDeclaration​(java.lang.String name)