package art.servers.transactionsserver.model.vms;
|
|
import java.awt.image.BufferedImage;
|
import java.io.ByteArrayOutputStream;
|
import art.library.interop.InteropParameters;
|
import art.library.interop.InteropResponse;
|
import art.library.interop.serialization.SerializationException;
|
import art.library.model.devices.Device;
|
import art.library.model.devices.vms.general.VmsGeneral;
|
import art.library.model.devices.vms.general.commands.VmsGeneralCommandsMessage;
|
import art.library.model.devices.vms.general.commands.VmsGeneralCommandsMessageImage;
|
import art.library.model.devices.vms.general.commands.VmsGeneralCommandsMessagePersistence;
|
import art.servers.ServerException;
|
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;
|
import javax.imageio.ImageIO;
|
|
|
public class ModelVmsMessagesLibrary
|
{
|
public ModelVmsMessagesLibrary()
|
{
|
}
|
|
public InteropResponse addVmsGeneralCommandsMessages(InteropParameters parameters) throws SerializationException
|
{
|
String language = (String) parameters.getParameterValue("language");
|
boolean success = true;
|
|
try
|
{
|
VmsGeneralCommandsMessage lvmsGeneralCommandsMessage[] = parameters.getBodyContentValue(VmsGeneralCommandsMessage[].class);
|
|
for (VmsGeneralCommandsMessage vmsGeneralCommandsMessage : lvmsGeneralCommandsMessage)
|
{
|
try
|
{
|
if (vmsGeneralCommandsMessage.folder == null){vmsGeneralCommandsMessage.folder = "";}
|
Shared.controllerDatabase.getTimelessPersistance().get(0).updateOrAddObject(new VmsGeneralCommandsMessagePersistence(vmsGeneralCommandsMessage));
|
} catch (Exception ex)
|
{
|
success = false;
|
ex.printStackTrace();
|
}
|
}
|
} catch (Exception e)
|
{
|
e.printStackTrace();
|
}
|
return new InteropResponse(new Boolean(success));
|
}
|
|
public InteropResponse removeVmsGeneralCommandsMessages(InteropParameters parameters) throws SerializationException
|
{
|
String language = (String) parameters.getParameterValue("language");
|
boolean success = true;
|
|
try
|
{
|
VmsGeneralCommandsMessage lvmsGeneralCommandsMessage[] = parameters.getBodyContentValue(VmsGeneralCommandsMessage[].class);
|
|
for (VmsGeneralCommandsMessage vmsGeneralCommandsMessage : lvmsGeneralCommandsMessage)
|
{
|
try
|
{
|
if (vmsGeneralCommandsMessage.folder == null){vmsGeneralCommandsMessage.folder = "";}
|
Shared.controllerDatabase.getTimelessPersistance().get(0).deleteObject(new VmsGeneralCommandsMessagePersistence(vmsGeneralCommandsMessage));
|
} catch (Exception ex)
|
{
|
success = false;
|
ex.printStackTrace();
|
}
|
}
|
} catch (Exception e)
|
{
|
e.printStackTrace();
|
}
|
return new InteropResponse(new Boolean(success));
|
}
|
|
@SuppressWarnings("unchecked")
|
public InteropResponse getVmsGeneralCommandsMessages(InteropParameters parameters) throws SerializationException
|
{
|
String language = (String) parameters.getParameterValue("language");
|
List<VmsGeneralCommandsMessagePersistence> lvmsGeneralCommandsMessagePersistence = 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 + "%'";
|
|
lvmsGeneralCommandsMessagePersistence = (List<VmsGeneralCommandsMessagePersistence>) (List<?>) Shared.controllerDatabase.getTimelessPersistance().get(0).getObject(VmsGeneralCommandsMessagePersistence.class.getName(), where);
|
} else
|
{
|
lvmsGeneralCommandsMessagePersistence = (List<VmsGeneralCommandsMessagePersistence>) (List<?>) Shared.controllerDatabase.getTimelessPersistance().get(0).getObject(VmsGeneralCommandsMessagePersistence.class.getName());
|
}
|
List<VmsGeneralCommandsMessage> lvmsGeneralCommandsMessage = lvmsGeneralCommandsMessagePersistence.stream().map(m -> m.message).collect(Collectors.toList());
|
|
return new InteropResponse(lvmsGeneralCommandsMessage.toArray(new VmsGeneralCommandsMessage[0]));
|
} catch (Exception exception)
|
{
|
throw new SerializationException(Shared.getMessage(language, exception.getMessage()), exception);
|
}
|
}
|
|
@SuppressWarnings("unchecked")
|
public InteropResponse getVmsGeneralCommandsMessagesFolders(InteropParameters parameters) throws SerializationException
|
{
|
String language = (String) parameters.getParameterValue("language");
|
Set<String> lfolder = new HashSet<>();
|
|
try
|
{
|
String type = (parameters.hasParameter("type") == true) ? (String)parameters.getParameterValue("type") : null;
|
if (type != null)
|
{
|
List<VmsGeneralCommandsMessagePersistence> lvmsGeneralCommandsMessagePersistence
|
= (List<VmsGeneralCommandsMessagePersistence>) (List<?>) Shared.controllerDatabase.getTimelessPersistance().get(0).getObject(VmsGeneralCommandsMessagePersistence.class.getName(), "type='" + type + "'");
|
|
lfolder = lvmsGeneralCommandsMessagePersistence.stream().map(m -> m.message.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 getVmsGeneralCommandsMessagesFoldersDevice(InteropParameters parameters) throws SerializationException
|
{
|
String language = (String) parameters.getParameterValue("language");
|
Set<String> lfolder = new HashSet<>();
|
|
try
|
{
|
String type = (parameters.hasParameter("type") == true) ? (String)parameters.getParameterValue("type") : null;
|
String identifier = (parameters.hasParameter("identifier") == true) ? (String)parameters.getParameterValue("identifier") : null;
|
if (identifier == null)
|
{
|
identifier = (parameters.hasParameter("device") == true) ? (String)parameters.getParameterValue("device") : null;
|
}
|
|
if (identifier != null)
|
{
|
Device device = Shared.model.getDeviceExternal(identifier);
|
if (device == null) throw new ServerException("Device does not exist");
|
if (device instanceof VmsGeneral)
|
{
|
type = ((VmsGeneral)device).getDeviceInformation().getResolutionType();
|
}
|
else
|
{
|
throw new ServerException("Device is not a VMS");
|
}
|
}
|
|
if (type != null)
|
{
|
List<VmsGeneralCommandsMessagePersistence> lvmsGeneralCommandsMessagePersistence
|
= (List<VmsGeneralCommandsMessagePersistence>) (List<?>) Shared.controllerDatabase.getTimelessPersistance().get(0).getObject(VmsGeneralCommandsMessagePersistence.class.getName(), "type='" + type + "'");
|
|
lfolder = lvmsGeneralCommandsMessagePersistence.stream().map(m -> m.message.folder).collect(Collectors.toSet());
|
}
|
|
return new InteropResponse(lfolder.toArray(new String[0]));
|
}
|
catch (ServerException exception)
|
{
|
throw new SerializationException(Shared.getMessage(language, exception.getMessage()), exception);
|
}
|
catch (Exception exception)
|
{
|
throw new SerializationException(Shared.getMessage(language, exception.getMessage()), exception);
|
}
|
}
|
|
@SuppressWarnings("unchecked")
|
public InteropResponse getVmsGeneralCommandsMessagesDeviceFolder(InteropParameters parameters) throws SerializationException
|
{
|
String language = (String) parameters.getParameterValue("language");
|
List<VmsGeneralCommandsMessagePersistence> lvmsGeneralCommandsMessagePersistence = new ArrayList<>();
|
|
try
|
{
|
int width = (parameters.hasParameter("width") == true) ? Integer.parseInt((String)parameters.getParameterValue("width")) : 0;
|
int height = (parameters.hasParameter("height") == true) ? Integer.parseInt((String)parameters.getParameterValue("height")) : 0;
|
String folder = (parameters.hasParameter("folder") == true) ? (String)parameters.getParameterValue("folder") : null;
|
String name = (parameters.hasParameter("name") == true) ? (String)parameters.getParameterValue("name") : null;
|
String identifier = (parameters.hasParameter("identifier") == true) ? (String)parameters.getParameterValue("identifier") : null;
|
if (identifier == null)
|
{
|
identifier = (parameters.hasParameter("device") == true) ? (String)parameters.getParameterValue("device") : null;
|
}
|
|
String type = null;
|
if (identifier != null)
|
{
|
Device device = Shared.model.getDeviceExternal(identifier);
|
if (device == null) throw new ServerException("Device does not exist");
|
if (device instanceof VmsGeneral)
|
{
|
type = ((VmsGeneral)device).getDeviceInformation().getResolutionType();
|
// if (width == 0) width = ((VmsGeneral)device).getDeviceInformation().width;
|
// if (height == 0) height = ((VmsGeneral)device).getDeviceInformation().height;
|
}
|
else
|
{
|
throw new ServerException("Device is not a VMS");
|
}
|
}
|
|
if ((folder != null) || (type != null) || (name != null))
|
{
|
String where = "true";
|
if (folder!=null) where+= " and folder='" + folder + "'";
|
if (type!=null) where+= " and type='" + type + "'";
|
if (name!=null) where+= " and name='" + name + "'";
|
|
lvmsGeneralCommandsMessagePersistence = (List<VmsGeneralCommandsMessagePersistence>) (List<?>) Shared.controllerDatabase.getTimelessPersistance().get(0).getObject(VmsGeneralCommandsMessagePersistence.class.getName(), where);
|
} else
|
{
|
lvmsGeneralCommandsMessagePersistence = (List<VmsGeneralCommandsMessagePersistence>) (List<?>) Shared.controllerDatabase.getTimelessPersistance().get(0).getObject(VmsGeneralCommandsMessagePersistence.class.getName());
|
}
|
List<VmsGeneralCommandsMessage> lvmsGeneralCommandsMessage = lvmsGeneralCommandsMessagePersistence.stream().map(m -> m.message).collect(Collectors.toList());
|
List<VmsGeneralCommandsMessageImage> lvmsGeneralCommandsMessageImage = new ArrayList<VmsGeneralCommandsMessageImage>();
|
|
for (VmsGeneralCommandsMessage message : lvmsGeneralCommandsMessage)
|
{
|
VmsGeneralCommandsMessageImage image = new VmsGeneralCommandsMessageImage();
|
image.folder = message.folder;
|
image.name = message.name;
|
image.priority = message.priority;
|
image.time = message.time;
|
image.type = message.type;
|
image.imageType = "png";
|
BufferedImage bufImage = message.document.getRealisticImage(width, height, true);
|
image.height = bufImage.getHeight();
|
image.width = bufImage.getWidth();
|
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
ImageIO.write(bufImage, "png", bos);
|
bos.flush();
|
image.image = bos.toByteArray();
|
bos.close();
|
bos = null;
|
|
lvmsGeneralCommandsMessageImage.add(image);
|
}
|
|
return new InteropResponse(lvmsGeneralCommandsMessageImage.toArray(new VmsGeneralCommandsMessageImage[0]));
|
}
|
catch (ServerException exception)
|
{
|
throw new SerializationException(Shared.getMessage(language, exception.getMessage()), exception);
|
}
|
catch (Exception exception)
|
{
|
throw new SerializationException(Shared.getMessage(language, exception.getMessage()), exception);
|
}
|
}
|
|
|
@SuppressWarnings("unchecked")
|
public InteropResponse renameVmsGeneralCommandsMessagesFolder(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 + "'";
|
List<VmsGeneralCommandsMessagePersistence> lvmsGeneralCommandsMessagePersistence = (List<VmsGeneralCommandsMessagePersistence>) (List<?>) Shared.controllerDatabase.getTimelessPersistance().get(0).getObject(VmsGeneralCommandsMessagePersistence.class.getName(), where);
|
List<VmsGeneralCommandsMessage> lvmsGeneralCommandsMessage = lvmsGeneralCommandsMessagePersistence.stream().map(m -> m.message).collect(Collectors.toList());
|
|
for (VmsGeneralCommandsMessage vmsGeneralCommandsMessage : lvmsGeneralCommandsMessage)
|
{
|
try
|
{
|
Shared.controllerDatabase.getTimelessPersistance().get(0).deleteObject(new VmsGeneralCommandsMessagePersistence(vmsGeneralCommandsMessage));
|
vmsGeneralCommandsMessage.folder = newPath;
|
Shared.controllerDatabase.getTimelessPersistance().get(0).addObject_asynchronous(new VmsGeneralCommandsMessagePersistence(vmsGeneralCommandsMessage));
|
} catch (Exception e)
|
{
|
success = false;
|
}
|
}
|
return new InteropResponse(success);
|
} catch (Exception exception)
|
{
|
throw new SerializationException(Shared.getMessage(language, exception.getMessage()), exception);
|
}
|
}
|
|
@SuppressWarnings("unchecked")
|
public InteropResponse getVmsGeneralCommandsMessageTypes(InteropParameters parameters) throws SerializationException
|
{
|
String language = (String) parameters.getParameterValue("language");
|
List<String> ltype = new ArrayList<>();
|
|
try
|
{
|
ResultSet res = Shared.controllerDatabase.getTimelessPersistance().get(0).executeQuery("SELECT distinct(type) FROM vms_library");
|
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);
|
}
|
}
|
}
|