Package ch.rakudave.jnetmap.util

Source Code of ch.rakudave.jnetmap.util.XStreamHelper

package ch.rakudave.jnetmap.util;

import net.xeoh.plugins.base.util.PluginManagerUtil;
import ch.rakudave.jnetmap.controller.Controller;
import ch.rakudave.jnetmap.model.Connection;
import ch.rakudave.jnetmap.model.Map;
import ch.rakudave.jnetmap.model.MapListener;
import ch.rakudave.jnetmap.model.IF.LogicalIF;
import ch.rakudave.jnetmap.model.IF.NetworkIF;
import ch.rakudave.jnetmap.model.IF.PhysicalIF;
import ch.rakudave.jnetmap.model.IF.TransparentIF;
import ch.rakudave.jnetmap.model.device.Device;
import ch.rakudave.jnetmap.model.device.DeviceListener;
import ch.rakudave.jnetmap.net.status.IsReachable;
import ch.rakudave.jnetmap.net.status.NativePing;
import ch.rakudave.jnetmap.net.status.OpenSocket;
import ch.rakudave.jnetmap.net.status.PingMethod;
import ch.rakudave.jnetmap.plugins.Plugin;
import ch.rakudave.jnetmap.util.logging.Logger;

import com.thoughtworks.xstream.XStream;

/**
* @author rakudave
*/
public class XStreamHelper {
  /**
   * @return XStream-Object with all relevant class-mappings
   */
  public static XStream getXStream() {
    XStream xs = new XStream();
    xs.processAnnotations(Map.class);
    xs.processAnnotations(MapListener.class);
    xs.processAnnotations(Connection.class);
    xs.processAnnotations(Device.class);
    xs.processAnnotations(DeviceListener.class);
    xs.processAnnotations(NetworkIF.class);
    xs.processAnnotations(PhysicalIF.class);
    xs.processAnnotations(LogicalIF.class);
    xs.processAnnotations(TransparentIF.class);
    xs.processAnnotations(PingMethod.class);
    xs.processAnnotations(IsReachable.class);
    xs.processAnnotations(NativePing.class);
    xs.processAnnotations(OpenSocket.class);
    for (Plugin p : new PluginManagerUtil(Controller.pm).getPlugins(Plugin.class)) {
      try {
        xs.processAnnotations(p.getClass());
      } catch (Exception e) {
        Logger.warn("Unable to process xs-annotations for" + p.getPluginName());
      }
    }
    return xs;
  }

}
TOP

Related Classes of ch.rakudave.jnetmap.util.XStreamHelper

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.