Как получить доступ к переменной экземпляра Java в DSL? - PullRequest
0 голосов
/ 23 мая 2018

У меня есть модель данных (Car.java), исходный шаблон (файл dsl) и прикладная программа .

Template ClassCar.java

public class Car {

    public String name;
    public  int price;

    public Car() {
    }
}

Файл шаблона index.template

<body>
    <table>
        <tr>
            <th>Name</th>  
            <th>Price</th>
        </tr>        
        {FOR car : cars}
            <tr>
                <td>{car.name}</td> 
                <td>{car.price}</td>
            </tr>   
    </table>                
</body>

Примечание: Простой текст, обогащенный элементами шаблона записи, которые заключены в { }

Использование шаблона в программе:

Car c1 = new Car("??", 52642);
Car c2 = new Car("??", 29000);
Car c3 = new Car("??", 9000);
List<Car> cars= new ArrayList<>();
cars.add(c1);
...
...

Вывод должен быть всеми элементами коллекции автомобилей.

Проблема?

У меня нет доступа к cars (переменная экземпляра) из прикладной программы в файле шаблона.Как я могу получить переменную экземпляра cars (не Java-класс, как Car) в index.template файле?

1 Ответ

0 голосов
/ 23 мая 2018

Взгляните на Xbase.В официальной документации: https://www.eclipse.org/Xtext/documentation/305_xbase.html

Xbase обеспечивает интеграцию для всех DSL с системой типов Java.

...