public OverloadedMethod add(MethodAccess methodAccess) { if (lock) { Exceptions.die(); } methodAccessList.add(methodAccess); if (!methodAccess.method().isVarArgs()) { List<MethodAccess> methodAccesses = methodAccessListByArgNumber.get(methodAccess.parameterTypes().length); if (methodAccesses == null) { methodAccesses = new ArrayList<>(); methodAccessListByArgNumber.set(methodAccess.parameterTypes().length, methodAccesses); } methodAccesses.add(methodAccess); } else { List<MethodAccess> methodAccesses = methodAccessListByArgNumberWithVarArg.get(methodAccess.parameterTypes().length); if (methodAccesses == null) { methodAccesses = new ArrayList<>(); methodAccessListByArgNumberWithVarArg.set( methodAccess.parameterTypes().length, methodAccesses); } methodAccesses.add(methodAccess); } return this; }
@SuppressWarnings("unchecked") public static <V> V[] array(Collection<V> collection) { if (collection.size() > 0) { Object newInstance = Array.newInstance(collection.iterator().next().getClass(), collection.size()); return collection.toArray((V[]) newInstance); } else { Exceptions.die("array(listStream): The collection has to have at least one item in it"); return null; } }
public OverloadedMethod init() { if (lock) { Exceptions.die(); } for (List<MethodAccess> methodAccesses : methodAccessListByArgNumber) { java.util.Collections.sort(methodAccesses); } lock(); return this; }
@Override public Value setValue(Value value) { Exceptions.die("not that kind of Entry"); return null; }