public interface User {
String getName();
int getAge();
}
@GeneratedCode(name = "UserMap", generateMethods = false)
public interface UserMap extends Map<Integer, User> {
User getByName(String name);
void setName(int index, String name);
int getAge(int index);
void setAge(int index, int age);
}
public class UserMapImpl implements UserMap {
private final Map<Integer, User> delegate;
public UserMapImpl() {
delegate = new HashMap<>();
}
@Override
public User getByName(String name) {
return delegate.getOrDefault(name, null);
}
@Override
public void setName(int index, String name) {
delegate.put(index, new User(name));
}
@Override
public int getAge(int index) {
return delegate.getOrDefault(index, 0);
}
@Override
public void setAge(int index, int age) {
delegate.put(index, new User(age));
}
}