У меня есть интерфейс Java
public interface IPerson {
Person addPerson(String name );
Person addPerson(String name1,String name2);
Person addPerson(String name,String[] details);
Person addPerson(String name,String name1,String[] details);
Person addPerson(String name,List<String> details);
}
С PersonImpl .java
:
class PersonImpl implemets Iperson {
..
// and interface methods implemtation
}
и мой person.java выглядит как
class Person {
def firstName;
def lastName;
}
А мой PersonTest.groovy
выглядит как
def PersonImpl person = new PersonImpl();
person.addPerson("anish")
person.addPerson("anish","nath")
person.addPerson("john","smith")
person.addPerson("tim","yates")
def list=[];
list.add("abc")
list.add("qpr")
person.addPerson("anish",list)
person.addPerson("nath","11", [".docsDevNmAccessStatus.1", "Integer", "4"])
person.addPerson("nath","11", [".docsDevNmAccessStatus.1", "String", "4"])
Есть ли способ определить DSL для этого интерфейса, чтобы я легко вызывал addOperation?
Проблема в том, чтоIPerson
интерфейс не может быть изменен.
как я могу написать dsl что-то вроде
addPerson "anihs" "nath" //call to person.addPerson("anish","nath")
addPerson "tim" "kates"
//simlary of other interface method any suggestion