abstract class JavaParsingAtomicQueueGenerator
extends com.github.javaparser.ast.visitor.VoidVisitorAdapter<java.lang.Void>
Modifier and Type | Field and Description |
---|---|
protected static java.lang.String |
INDENT_LEVEL |
protected java.lang.String |
sourceFileName |
Constructor and Description |
---|
JavaParsingAtomicQueueGenerator(java.lang.String sourceFileName) |
Modifier and Type | Method and 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 |
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 |
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) |
(package private) abstract void |
processSpecialNodeTypes(com.github.javaparser.ast.nodeTypes.NodeWithType<?,com.github.javaparser.ast.type.Type> node,
java.lang.String name) |
private void |
processSpecialNodeTypes(com.github.javaparser.ast.body.Parameter node) |
private void |
processSpecialNodeTypes(com.github.javaparser.ast.body.VariableDeclarator node) |
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.expr.FieldAccessExpr n,
java.lang.Void arg) |
void |
visit(com.github.javaparser.ast.PackageDeclaration n,
java.lang.Void arg) |
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) |
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
protected static final java.lang.String INDENT_LEVEL
protected final java.lang.String sourceFileName
JavaParsingAtomicQueueGenerator(java.lang.String sourceFileName)
static void main(java.lang.Class<? extends JavaParsingAtomicQueueGenerator> generatorClass, java.lang.String[] args) throws java.lang.Exception
java.lang.Exception
abstract void organiseImports(com.github.javaparser.ast.CompilationUnit cu)
abstract java.lang.String translateQueueName(java.lang.String fileName)
abstract void processSpecialNodeTypes(com.github.javaparser.ast.nodeTypes.NodeWithType<?,com.github.javaparser.ast.type.Type> node, java.lang.String name)
abstract java.lang.String fieldUpdaterFieldName(java.lang.String fieldName)
public void visit(com.github.javaparser.ast.expr.FieldAccessExpr n, java.lang.Void arg)
visit
in interface com.github.javaparser.ast.visitor.VoidVisitor<java.lang.Void>
visit
in class com.github.javaparser.ast.visitor.VoidVisitorAdapter<java.lang.Void>
public void visit(com.github.javaparser.ast.PackageDeclaration n, java.lang.Void arg)
visit
in interface com.github.javaparser.ast.visitor.VoidVisitor<java.lang.Void>
visit
in class com.github.javaparser.ast.visitor.VoidVisitorAdapter<java.lang.Void>
public void visit(com.github.javaparser.ast.body.Parameter n, java.lang.Void arg)
visit
in interface com.github.javaparser.ast.visitor.VoidVisitor<java.lang.Void>
visit
in class com.github.javaparser.ast.visitor.VoidVisitorAdapter<java.lang.Void>
public void visit(com.github.javaparser.ast.body.VariableDeclarator n, java.lang.Void arg)
visit
in interface com.github.javaparser.ast.visitor.VoidVisitor<java.lang.Void>
visit
in class com.github.javaparser.ast.visitor.VoidVisitorAdapter<java.lang.Void>
private void processSpecialNodeTypes(com.github.javaparser.ast.body.Parameter node)
private void processSpecialNodeTypes(com.github.javaparser.ast.body.VariableDeclarator node)
protected boolean isCommentPresent(com.github.javaparser.ast.Node node, java.lang.String wanted)
protected void removeStaticFieldsAndInitialisers(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration node)
protected java.lang.String capitalise(java.lang.String s)
protected java.lang.String formatMultilineJavadoc(int indent, java.lang.String... lines)
protected com.github.javaparser.ast.stmt.BlockStmt fieldUpdaterLazySet(java.lang.String fieldUpdaterFieldName, java.lang.String newValueName)
P_INDEX_UPDATER.lazySet(this, newValue)
fieldUpdaterFieldName
- newValueName
- protected com.github.javaparser.ast.stmt.BlockStmt fieldUpdaterCompareAndSet(java.lang.String fieldUpdaterFieldName, java.lang.String expectedValueName, java.lang.String newValueName)
return P_INDEX_UPDATER.compareAndSet(this, expectedValue, newValue)
fieldUpdaterFieldName
- expectedValueName
- newValueName
- 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.stmt.BlockStmt fieldAssignment(java.lang.String fieldName, java.lang.String valueName)
field = newValue
fieldName
- valueName
- 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)
private static final AtomicLongFieldUpdater P_INDEX_UPDATER = AtomicLongFieldUpdater.newUpdater(MpmcAtomicArrayQueueProducerIndexField.class, "producerIndex");
type
- name
- initializer
- modifiers
- protected com.github.javaparser.ast.body.FieldDeclaration declareLongFieldUpdater(java.lang.String className, java.lang.String variableName)
private static final AtomicLongFieldUpdater P_INDEX_UPDATER = AtomicLongFieldUpdater.newUpdater(MpmcAtomicArrayQueueProducerIndexField.class, "producerIndex");
className
- variableName
- protected com.github.javaparser.ast.expr.MethodCallExpr newAtomicLongFieldUpdater(java.lang.String className, java.lang.String variableName)
protected com.github.javaparser.ast.type.ClassOrInterfaceType simpleParametricType(java.lang.String className, java.lang.String... typeArgs)
protected com.github.javaparser.ast.type.ClassOrInterfaceType classType(java.lang.String className)
protected com.github.javaparser.ast.ImportDeclaration importDeclaration(java.lang.String name)
protected com.github.javaparser.ast.stmt.BlockStmt returnField(java.lang.String fieldName)
return field
fieldName
- 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)
private static <T> T buildGenerator(java.lang.Class<? extends T> generatorClass, java.lang.String fileName) throws java.lang.Exception
java.lang.Exception
com.github.javaparser.ast.ImportDeclaration staticImportDeclaration(java.lang.String name)