public static Repository yawp() { init(); return yawp.get(); }
@Override public <T> T fetch(IdRef<T> id) { init(); return get().fetch(id); }
@Override public String currentNamespace() { init(); return get().currentNamespace(); }
@Override public AsyncRepository async() { init(); return get().async(); }
@Override public <T> QueryBuilder<T> query(Class<T> clazz) { init(); return get().query(clazz); }
@Override public void destroy(IdRef<?> id) { init(); get().destroy(id); }
@Override public EndpointFeatures<?> getEndpointFeatures(String endpointPath) { init(); return get().getEndpointFeatures(endpointPath); }
@Override public <T> IdRef<T> parseId(Class<T> clazz, String idString) { init(); return get().parseId(clazz, idString); }
@Override public Repository setRequestContext(RequestContext requestContext) { init(); return get().setRequestContext(requestContext); }
@Override public Driver driver() { init(); return get().driver(); }
@Override public Object action(IdRef<?> id, Class<?> clazz, ActionKey actionKey, String json, Map<String, String> params) { init(); return get().action(id, clazz, actionKey, json, params); }
@Override public RepositoryFeatures getFeatures() { init(); return get().getFeatures(); }
@Override public void commit() { init(); get().commit(); }
@Override public Repository namespace(String ns) { init(); return get().namespace(ns); }
@Override public <T> EndpointFeatures<T> getEndpointFeatures(Class<T> endpoint) { init(); return get().getEndpointFeatures(endpoint); }
@Override public void begin() { init(); get().begin(); }
@Override public void rollback() { init(); get().rollback(); }
@Override public TransactionDriver currentTransaction() { init(); return get().currentTransaction(); }
private static void init() { if (yawp.get() != null) { return; } if (features == null) { safeLoadFeaturesFromConfig(); } yawp.set(Repository.r().setFeatures(features)); }
public static void init(String packagePrefix) { if (yawp.get() != null) { return; } if (features == null) { safeLoadFeatures(packagePrefix); } yawp.set(Repository.r().setFeatures(features)); }