Package org.jctools.queues.atomic
Class JavaParsingAtomicQueueGenerator
- java.lang.Object
-
- com.github.javaparser.ast.visitor.VoidVisitorAdapter<java.lang.Void>
-
- org.jctools.queues.atomic.JavaParsingAtomicQueueGenerator
-
- All Implemented Interfaces:
com.github.javaparser.ast.visitor.VoidVisitor<java.lang.Void>
- Direct Known Subclasses:
JavaParsingAtomicArrayQueueGenerator
,JavaParsingAtomicLinkedQueueGenerator
abstract class JavaParsingAtomicQueueGenerator extends com.github.javaparser.ast.visitor.VoidVisitorAdapter<java.lang.Void>
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.String
INDENT_LEVEL
protected java.lang.String
sourceFileName
-
Constructor Summary
Constructors Constructor Description JavaParsingAtomicQueueGenerator(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 likeprivate 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 likefield = 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 likeprivate 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 likereturn 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 likeP_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 likereturn 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
-
-
-
-
Field Detail
-
INDENT_LEVEL
protected static final java.lang.String INDENT_LEVEL
- See Also:
- Constant Field Values
-
sourceFileName
protected final 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 interfacecom.github.javaparser.ast.visitor.VoidVisitor<java.lang.Void>
- Overrides:
visit
in classcom.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 interfacecom.github.javaparser.ast.visitor.VoidVisitor<java.lang.Void>
- Overrides:
visit
in classcom.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 interfacecom.github.javaparser.ast.visitor.VoidVisitor<java.lang.Void>
- Overrides:
visit
in classcom.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 interfacecom.github.javaparser.ast.visitor.VoidVisitor<java.lang.Void>
- Overrides:
visit
in classcom.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 likeP_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 likereturn 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 likefield = 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 likeprivate 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 likeprivate 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 likereturn 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)
-
-