/*
* Copyright 2013 lorislab.org.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lorislab.smonitor.util;
import java.util.ArrayList;
import java.util.List;
import org.lorislab.smonitor.connector.model.Attribute;
import org.lorislab.smonitor.connector.model.Session;
import org.lorislab.smonitor.connector.model.SessionDetails;
import org.lorislab.smonitor.datastore.model.AgentData;
import org.lorislab.smonitor.rs.model.AttributeInfo;
import org.lorislab.smonitor.rs.model.SessionInfo;
import org.lorislab.smonitor.rs.model.SessionInfoDetails;
/**
*
* @author Andrej Petras
*/
public final class MapperUtil {
public static List<SessionInfo> create(AgentData agent, List<Session> sessions) {
List<SessionInfo> result = null;
if (sessions != null) {
result = new ArrayList<SessionInfo>();
for (Session session : sessions) {
SessionInfo info = create(agent, session);
if (info != null) {
result.add(info);
}
}
}
return result;
}
public static SessionInfo create(AgentData agent, Session session) {
SessionInfo result = null;
if (session != null) {
result = new SessionInfo();
result.setGuid(agent.getGuid());
result.setAgent(agent.getName());
result.setApplication(session.getApplication());
result.setCreationTime(session.getCreationTime());
result.setHost(session.getHost());
result.setId(session.getId());
result.setLastAccessedTime(session.getLastAccessedTime());
result.setLastAccessedTimeInternal(session.getLastAccessedTimeInternal());
result.setMaxInactiveInterval(session.getMaxInactiveInterval());
result.setUser(session.getUser());
result.setValid(session.isValid());
}
return result;
}
public static SessionInfoDetails create(AgentData agent, SessionDetails session) {
SessionInfoDetails result = null;
if (session != null) {
result = new SessionInfoDetails();
result.setSession(create(agent,session.getSession()));
result.setInfo(session.getInfo());
result.setNewSession(session.isNewSession());
result.setRoles(session.getRoles());
result.setSize(session.getSize());
result.setSizeSerializable(session.getSizeSerializable());
result.setAttributes(create(session.getAttributes()));
}
return result;
}
public static List<AttributeInfo> create(List<Attribute> attributes) {
List<AttributeInfo> result = null;
if (attributes != null) {
result = new ArrayList<AttributeInfo>();
for (Attribute info : attributes) {
result.add(create(info));
}
}
return result;
}
public static AttributeInfo create(Attribute attribute) {
AttributeInfo result = null;
if (attribute != null) {
result = new AttributeInfo();
result.setName(attribute.getName());
result.setSerializable(attribute.isSerializable());
result.setSerializableSize(attribute.getSerializableSize());
result.setSize(attribute.getSize());
result.setType(attribute.getType());
}
return result;
}
}