package art.servers.transactionsserver.model.vms; import art.library.interop.InteropParameters; import art.library.interop.InteropResponse; import art.library.interop.serialization.SerializationException; import art.library.model.devices.vms.general.commands.VmsGeneralCommandsPictogram; import art.library.model.devices.vms.general.commands.VmsGeneralCommandsPictogramPersistence; import art.servers.transactionsserver.Shared; import java.sql.ResultSet; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; public class ModelVmsPictogramsLibrary { public ModelVmsPictogramsLibrary() { } public InteropResponse addVmsGeneralCommandsPictogram(InteropParameters parameters) throws SerializationException { String language = (String) parameters.getParameterValue("language"); boolean success = true; try { VmsGeneralCommandsPictogram lvmsGeneralCommandsPictogram[] = parameters.getBodyContentValue(VmsGeneralCommandsPictogram[].class); for (VmsGeneralCommandsPictogram vmsGeneralCommandsPictogram : lvmsGeneralCommandsPictogram) { try { if (vmsGeneralCommandsPictogram.folder == null){vmsGeneralCommandsPictogram.folder = "";} Shared.controllerDatabase.getTimelessPersistance().get(0).updateOrAddObject(new VmsGeneralCommandsPictogramPersistence(vmsGeneralCommandsPictogram)); } catch (Exception ex) { success = false; ex.printStackTrace(); } } } catch (Exception e) { e.printStackTrace(); } return new InteropResponse(new Boolean(success)); } public InteropResponse removeVmsGeneralCommandsPictogram(InteropParameters parameters) throws SerializationException { String language = (String) parameters.getParameterValue("language"); boolean success = true; try { VmsGeneralCommandsPictogram lvmsGeneralCommandsPictogram[] = parameters.getBodyContentValue(VmsGeneralCommandsPictogram[].class); for (VmsGeneralCommandsPictogram vmsGeneralCommandsPictogram : lvmsGeneralCommandsPictogram) { try { if (vmsGeneralCommandsPictogram.folder == null){vmsGeneralCommandsPictogram.folder = "";} Shared.controllerDatabase.getTimelessPersistance().get(0).deleteObject(new VmsGeneralCommandsPictogramPersistence(vmsGeneralCommandsPictogram)); } catch (Exception ex) { success = false; ex.printStackTrace(); } } } catch (Exception e) { e.printStackTrace(); } return new InteropResponse(new Boolean(success)); } @SuppressWarnings("unchecked") public InteropResponse getVmsGeneralCommandsPictogram(InteropParameters parameters) throws SerializationException { String language = (String) parameters.getParameterValue("language"); List lvmsGeneralCommandsPictogramPersistence = new ArrayList<>(); try { String folder = (parameters.hasParameter("folder") == true) ? (String) parameters.getParameterValue("folder") : null; String name = (parameters.hasParameter("name") == true) ? (String) parameters.getParameterValue("name") : null; String type = (parameters.hasParameter("type") == true) ? (String) parameters.getParameterValue("type") : null; if (folder != null || name != null || type != null) { String where = "true"; if (folder != null) where += " and folder='" + folder + "'"; if (type != null) where += " and type='" + type + "'"; if (name != null) where += " and name like '%" + name + "%'"; lvmsGeneralCommandsPictogramPersistence = (List) (List) Shared.controllerDatabase.getTimelessPersistance().get(0).getObject(VmsGeneralCommandsPictogramPersistence.class.getName(), where); } else { lvmsGeneralCommandsPictogramPersistence = (List) (List) Shared.controllerDatabase.getTimelessPersistance().get(0).getObject(VmsGeneralCommandsPictogramPersistence.class.getName()); } List lvmsGeneralCommandsPictogram = lvmsGeneralCommandsPictogramPersistence.stream().map(m -> m.pictogram).collect(Collectors.toList()); return new InteropResponse(lvmsGeneralCommandsPictogram.toArray(new VmsGeneralCommandsPictogram[0])); } catch (Exception exception) { throw new SerializationException(Shared.getMessage(language, exception.getMessage()), exception); } } @SuppressWarnings("unchecked") public InteropResponse getVmsGeneralCommandsPictogramFolders(InteropParameters parameters) throws SerializationException { String language = (String) parameters.getParameterValue("language"); Set lfolder = new HashSet<>(); try { String type = (parameters.hasParameter("type") == true) ? (String) parameters.getParameterValue("type") : null; if (type != null) { List lvmsGeneralCommandsPictogramPersistence = (List) (List) Shared.controllerDatabase.getTimelessPersistance().get(0).getObject(VmsGeneralCommandsPictogramPersistence.class.getName(), "type='" + type + "'"); lfolder = lvmsGeneralCommandsPictogramPersistence.stream().map(m -> m.pictogram.folder).collect(Collectors.toSet()); } return new InteropResponse(lfolder.toArray(new String[0])); } catch (Exception exception) { throw new SerializationException(Shared.getMessage(language, exception.getMessage()), exception); } } @SuppressWarnings("unchecked") public InteropResponse renameVmsGeneralCommandsPictogramFolder(InteropParameters parameters) throws SerializationException { String language = (String) parameters.getParameterValue("language"); boolean success = true; try { String selectedPath = ((parameters.hasParameter("selectedPath") == true) && !((String) parameters.getParameterValue("selectedPath")).isEmpty()) ? (String) parameters.getParameterValue("selectedPath") : ""; String newPath = ((parameters.hasParameter("newPath") == true) && !((String) parameters.getParameterValue("newPath")).isEmpty()) ? (String) parameters.getParameterValue("newPath") : ""; String type = (parameters.hasParameter("type") == true) ? (String) parameters.getParameterValue("type") : null; String where = "(folder = '" + selectedPath + "' or folder like '" + selectedPath + "/%') and type='" + type + "'"; @SuppressWarnings("unchecked") List lvmsGeneralCommandsPictogramPersistence = (List) (List) Shared.controllerDatabase.getTimelessPersistance().get(0).getObject(VmsGeneralCommandsPictogramPersistence.class.getName(), where); List lvmsGeneralCommandsPictogram = lvmsGeneralCommandsPictogramPersistence.stream().map(m -> m.pictogram).collect(Collectors.toList()); for (VmsGeneralCommandsPictogram vmsGeneralCommandsPictogram : lvmsGeneralCommandsPictogram) { try { Shared.controllerDatabase.getTimelessPersistance().get(0).deleteObject(new VmsGeneralCommandsPictogramPersistence(vmsGeneralCommandsPictogram)); vmsGeneralCommandsPictogram.folder = vmsGeneralCommandsPictogram.folder.replace(selectedPath, newPath); Shared.controllerDatabase.getTimelessPersistance().get(0).addObject_asynchronous(new VmsGeneralCommandsPictogramPersistence(vmsGeneralCommandsPictogram)); } catch (Exception e) { success = false; } } return new InteropResponse(success); } catch (Exception exception) { throw new SerializationException(Shared.getMessage(language, exception.getMessage()), exception); } } public InteropResponse getVmsGeneralCommandsPictogramTypes(InteropParameters parameters) throws SerializationException { String language = (String) parameters.getParameterValue("language"); List ltype = new ArrayList<>(); try { ResultSet res = Shared.controllerDatabase.getTimelessPersistance().get(0).executeQuery("SELECT distinct(type) FROM pictogramlibrary"); while (res.next()) { ltype.add(res.getString(1)); } return new InteropResponse(ltype.toArray(new String[0])); } catch (Exception exception) { throw new SerializationException(Shared.getMessage(language, exception.getMessage()), exception); } } }