Question

I'm writing a program that incorporates the Rhino Scripting Engine. I would like to be ale to expose a couple of the program's enums, but I can't figure out how to do that, if it's even possible. Is there a way to make a java enum usable in the scripts?

Was it helpful?

Solution

Do you mean to use a java Enum from a script, which will be converted to Java by Rhino?. If this is the case, you could do something like:

  • given a java class with an Enum:

    package com.stackoverflow.example;
    public class Order {
    
        private String field;
        private By by;
    
        public enum By {
            ASC, DESC
        }
    
        public Order(String field, By by) {
            this.field = field;
            this.by = by;
        }
    }
    
  • and in the script you can do

    // Importing class with enum
    importClass(Packages.com.stackoverflow.example.Order);
    
    // Instancing a new Order object using the existing enum in the Order class
    var order = new Order("db_field", Order.By.DESC);
    

I hope it helps.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top