org.autoplot.jythonsupport.JythonToJavaConverter

experiment with code which converts the Jython AST (syntax tree) into Java code. See also https://cottagesystems.com/JavaJythonConverter/ which goes the other way.

JythonToJavaConverter( )


TYPE_INT


TYPE_LONG


TYPE_FLOAT


TYPE_STRING


TYPE_STRING_ARRAY


TYPE_OBJECT


TYPE_MAP


addImport

addImport( javax.swing.text.Document doc, String pkg, String name ) → void

add the class to the list of imports.

Parameters

doc - the document
pkg - the Java package
name - the Java class name.

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]

addImport( javax.swing.text.Document doc, String pkg, String name, int cursorPosition ) → void
addImport( String src, String pkg, String name ) → String

convert

convert( String script ) → String

convert Jython script to Java

Parameters

script - a String

Returns:

Java attempt

[search for examples] [view on GitHub] [view on old javadoc] [view source]


convertReverse

convertReverse( String javaCode ) → String

The goal is to take Java snippets and turn them into Jython code. This is all overly simplistic and should be done properly. Cheesy! More TODOs: throw IllegalArgumentException -> raise exception Character.isDigit -> string.isnumeric "".startsWith -> "".startswith "".trim() -> "".strip() || -> or && -> and ! -> not int[] d -> d System.arraycopy -> for i in range(0,6): a[i]=a[i+6]

Parameters

javaCode - a String

Returns:

conversion to Jython-like code.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getJavaListType

getJavaListType( org.python.parser.ast.List list ) → String

return the Java type to use for the list.

Parameters

list - an org.python.parser.ast.List

Returns:

a String

[search for examples] [view on GitHub] [view on old javadoc] [view source]


guessCompletions

guessCompletions( String clas ) → List

return a list of classes which are reasonable completions for the class provided. For example, "JP" would result in "JPanel" and "JPasswordField" TODO: what if this were to run through all the known JavaDoc

Parameters

clas - a String

Returns:

list of completions.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


guessPackage

guessPackage( String clas ) → String

scan through the list of imports in /importLookup.jy, to see if the symbol can be imported. This will return null (None) if there are no suggestions, or the name of the package.

Parameters

clas - the class name, for example "JSlider"

Returns:

the package or null, for example "javax.swing"

[search for examples] [view on GitHub] [view on old javadoc] [view source]


hasImport

hasImport( String src, String pkg, String name ) → boolean

return true if the class has been imported. Note this is not thorough and should be reviewed at some point.

Parameters

src - the Jython source
pkg - the Java package
name - the Java class name.

Returns:

true if the class has been imported already.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


main

main( java.lang.String[] args ) → void

Parameters

args - a java.lang.String[]

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]