генерировать java-бины с помощью clojure

Есть ли способ легко генерировать java bean-компоненты по заданному вектору в clojure? Например, для такого вектора:

[
    String :key1
    Integer :key2
]

Я бы хотел, чтобы он сгенерировал такой код:

public class NotSureWhatTheTypeWouldBeHere {
    private String key1;
    private Integer key2;

    public NotSureWhatTheTypeWouldBeHere() {}
    public NotSureWhatTheTypeWouldBeHere(String key1, Integer key2) {
        this.key1 = key1;
        this.key2 = key2;
    }

    public void setKey1(String key1) {
        this.key1 = key1;
    }
    public String getKey1() {
        return this.key1;
    }
    public void setKey2(Integer key2) {
        this.key2 = key2;
    }
    public String getKey2() {
        return this.key2;
    }

    // and equals,hashCode, toString, etc.
}

Для контекста я хотел бы написать приложение, написанное на java, но вызывающее библиотеку, написанную на clojure. Это означает, что возвращаемые значения должны быть java bean-компонентами (я знаю, что это не обязательно, но я бы хотел, чтобы они были). Одним из способов было бы определить модель в java, а затем использовать обычное взаимодействие java с clojure для заполнения модели в коде clojure, но мне нравится идея краткого вектора clojure (или карты), расширяющегося до (подробного) java bean.

8
задан Kevin 18 March 2012 в 05:34
поделиться