use of org.apache.openmeetings.db.entity.room.Room in project openmeetings by apache.
the class BackupExport method exportRoom.
/*
* ##################### Backup Room
*/
private void exportRoom(ZipOutputStream zos, ProgressHolder progressHolder) throws Exception {
Registry registry = new Registry();
Strategy strategy = new RegistryStrategy(registry);
Serializer serializer = new Persister(strategy);
registry.bind(User.class, UserConverter.class);
registry.bind(Room.Type.class, RoomTypeConverter.class);
List<Room> list = roomDao.get();
bindDate(registry, list);
writeList(serializer, zos, "rooms.xml", "rooms", list);
progressHolder.setProgress(15);
}
use of org.apache.openmeetings.db.entity.room.Room in project openmeetings by apache.
the class BackupImport method importRoomGroups.
/*
* ##################### Import Room Groups
*/
private void importRoomGroups(File f) throws Exception {
log.info("Room import complete, starting room groups import");
Registry registry = new Registry();
Strategy strategy = new RegistryStrategy(registry);
Serializer serializer = new Persister(strategy);
registry.bind(Group.class, new GroupConverter(groupDao, groupMap));
registry.bind(Room.class, new RoomConverter(roomDao, roomMap));
List<RoomGroup> list = readList(serializer, f, "rooms_organisation.xml", "room_organisations", RoomGroup.class);
for (RoomGroup ro : list) {
Room r = roomDao.get(ro.getRoom().getId());
if (r == null || ro.getGroup() == null || ro.getGroup().getId() == null) {
continue;
}
if (r.getGroups() == null) {
r.setGroups(new ArrayList<>());
}
ro.setId(null);
ro.setRoom(r);
r.getGroups().add(ro);
roomDao.update(r, null);
}
}
use of org.apache.openmeetings.db.entity.room.Room in project openmeetings by apache.
the class BackupImport method importRoomFiles.
/*
* ##################### Import Room Files
*/
private void importRoomFiles(File f) throws Exception {
log.info("Poll import complete, starting room files import");
Registry registry = new Registry();
Strategy strategy = new RegistryStrategy(registry);
Serializer serializer = new Persister(strategy);
registry.bind(BaseFileItem.class, new BaseFileItemConverter(fileItemDao, fileItemMap));
List<RoomFile> list = readList(serializer, f, "roomFiles.xml", "RoomFiles", RoomFile.class, true);
for (RoomFile rf : list) {
Room r = roomDao.get(roomMap.get(rf.getRoomId()));
if (r == null || rf.getFile() == null || rf.getFile().getId() == null) {
continue;
}
if (r.getFiles() == null) {
r.setFiles(new ArrayList<>());
}
rf.setId(null);
rf.setRoomId(r.getId());
r.getFiles().add(rf);
roomDao.update(r, null);
}
}
use of org.apache.openmeetings.db.entity.room.Room in project openmeetings by apache.
the class RoomDao method getRecent.
public List<Room> getRecent(Long userId) {
List<Room> result = new ArrayList<>();
Set<Long> ids = new HashSet<>();
// (RECENT_ROOMS_COUNT + 1) passes required to preserve the order :(
for (ConferenceLog l : em.createNamedQuery("getLogRecentRooms", ConferenceLog.class).setParameter("roomEnter", ConferenceLog.Type.roomEnter).setParameter(PARAM_USER_ID, userId).getResultList()) {
if (!ids.contains(l.getRoomId())) {
Room r = get(l.getRoomId());
if (r != null && !r.isDeleted()) {
result.add(r);
ids.add(r.getId());
}
}
if (ids.size() == RECENT_ROOMS_COUNT) {
break;
}
}
return result;
}
use of org.apache.openmeetings.db.entity.room.Room in project openmeetings by apache.
the class RoomDao method get.
@Override
public Room get(Long id) {
Room r = null;
if (id != null && id.longValue() > 0) {
OpenJPAEntityManager oem = OpenJPAPersistence.cast(em);
boolean qrce = oem.getFetchPlan().getQueryResultCacheEnabled();
try {
// update in cache during update
oem.getFetchPlan().setQueryResultCacheEnabled(false);
TypedQuery<Room> q = oem.createNamedQuery("getRoomById", Room.class);
q.setParameter("id", id);
@SuppressWarnings("unchecked") OpenJPAQuery<Room> kq = OpenJPAPersistence.cast(q);
kq.getFetchPlan().addFetchGroups("roomModerators", "roomGroups", "roomFiles");
List<Room> l = kq.getResultList();
r = l.isEmpty() ? r : l.get(0);
} finally {
oem.getFetchPlan().setQueryResultCacheEnabled(qrce);
}
} else {
log.info("[get] " + "Info: No room id given");
}
return r;
}
Aggregations