/** * Create a new instance of {@param type}, must have a default constructor */ public <T> T newInstance(Class<T> type) { if (type == lastClass) { return (T) lastFactory.newInstance(); } lastFactory = factories.get(type); lastClass = type; return (T) lastFactory.newInstance(); } }
private T readBean(Contexts.ReadContext context) { T bean = instanceFactory.newInstance(); for (Serializer handler : fieldSerializers) { handler.readIntoField(bean, context); } return bean; } }
public HashMap<K, V> nextHashMap() { HashMap<K, V> map = hashMapFactory.newInstance(); for (int i = 0; i < sizeGenerator.next(); i++) { map.put(keyGenerator.next(), valueGenerator.next()); } return map; }
@Override public Map<K, V> next() { Map<K, V> map = hashMapFactory.newInstance(); for (int i = 0; i < sizeGenerator.next(); i++) { map.put(keyGenerator.next(), valueGenerator.next()); } return map; }
public TreeMap<K, V> nextTreeMap() { TreeMap<K, V> map = treeMapFactory.newInstance(); for (int i = 0; i < sizeGenerator.next(); i++) { map.put(keyGenerator.next(), valueGenerator.next()); } return map; }
public static <R> BeanBuilder<R> stub(final Class<R> type) { InstanceFactory<R> fact = new DefaultInstanceFactory<>(type); R stub = fact.newInstance(); ProxyFactory factory = new ProxyFactory(stub); final Stack<Method> m = new Stack<>(); factory.addAdvice(new MethodInterceptor() { @Override public Object invoke(MethodInvocation methodInvocation) throws Throwable { PropertyDescriptor descriptor = BeanUtils.findPropertyForMethod(methodInvocation.getMethod()); if (descriptor == null) { throw new IllegalStateException(String.format("Method %s is not a getter or setter", methodInvocation.getMethod().getName())); } m.push(methodInvocation.getMethod()); return defaultReturnObjects.get(methodInvocation.getMethod().getReturnType()); } }); return new BeanBuilder<>((R) factory.getProxy(), fact, m); }
@Override public T next() { T newStub = factory.newInstance(); for (FieldAndStrategy fieldAndStrategy : strategies) { fieldAndStrategy.getAccessor().set(newStub, fieldAndStrategy.getStrategy().next()); } return newStub; } };