/*
* Copyright (c) 2010 Mysema Ltd.
* All rights reserved.
*
*/
package com.mysema.rdfbean.object;
import java.util.Arrays;
import java.util.Collections;
import java.util.Locale;
import javax.annotation.Nullable;
import com.mysema.rdfbean.TEST;
import com.mysema.rdfbean.model.MiniRepository;
import com.mysema.rdfbean.model.Repository;
public final class SessionUtil {
private SessionUtil() {
}
public static Session openSession(Class<?>... classes) {
return openSession(new MiniRepository(), classes);
}
public static Session openSession(Repository repository, Class<?>... classes) {
return openSession(repository, (Locale) null, classes);
}
public static Session openSession(Repository repository, @Nullable Locale locale, Class<?>... classes) {
return openSession(repository, locale != null ? Arrays.asList(locale) : Collections.<Locale> emptyList(), classes);
}
public static Session openSession(Repository repository, Iterable<Locale> locales, Class<?>... classes) {
return openSession(repository, locales, new DefaultConfiguration(TEST.NS, classes));
}
public static Session openSession(Repository repository, Package... packages) {
return openSession(repository, (Locale) null, packages);
}
public static Session openSession(Repository repository, @Nullable Locale locale, Package... packages) {
return openSession(repository, locale != null ? Arrays.asList(locale) : Collections.<Locale> emptyList(), packages);
}
public static Session openSession(Repository repository, Iterable<Locale> locales, Package... packages) {
return openSession(repository, locales, new DefaultConfiguration(TEST.NS, packages));
}
public static Session openSession(Repository repository, Iterable<Locale> locales, Configuration configuration) {
SessionFactoryImpl sessionFactory = new SessionFactoryImpl(locales);
sessionFactory.setConfiguration(configuration);
sessionFactory.setRepository(repository);
sessionFactory.initialize();
return sessionFactory.openSession();
}
}