/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
/*
* RMInfo.java
*
* Created on 23. November 2006, 16:27
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package Sirius.server.registry.rmplugin.util;
import java.io.Serializable;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.URI;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
/**
* DOCUMENT ME!
*
* @author Sebastian TODO Refactor
* @version $Revision$, $Date$
*/
public class RMInfo implements Serializable {
//~ Instance fields --------------------------------------------------------
private String userName;
private String userGroup;
private String userDomain;
private int port;
private InetAddress address;
private URI rmiAddress;
private String key;
private InetAddress ip;
private long onlineSince;
//~ Constructors -----------------------------------------------------------
/**
* Creates a new instance of RMInfo.
*
* @param userName DOCUMENT ME!
* @param userGroup DOCUMENT ME!
* @param userDomain DOCUMENT ME!
* @param port DOCUMENT ME!
* @param onlineSince DOCUMENT ME!
* @param ip DOCUMENT ME!
* @param rmiAddress DOCUMENT ME!
*/
public RMInfo(final String userName,
final String userGroup,
final String userDomain,
final int port,
final long onlineSince,
final InetAddress ip,
final URI rmiAddress) {
this.userName = userName;
this.userGroup = userGroup;
this.userDomain = userDomain;
this.port = port;
this.onlineSince = onlineSince;
this.rmiAddress = rmiAddress;
this.ip = ip;
key = userName + "@" + userGroup + "@" + userDomain; // NOI18N
}
//~ Methods ----------------------------------------------------------------
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public String getUserName() {
return userName;
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public String getUserGroup() {
return userGroup;
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public int getPort() {
return port;
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public URI getRmiAddress() {
return rmiAddress;
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public String getKey() {
return key;
}
@Override
public boolean equals(final Object obj) {
if (obj instanceof RMInfo) {
if (rmiAddress.equals(((RMInfo)obj).getRmiAddress())) {
return true;
} else {
return false;
}
} else {
return false;
}
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public long getOnlineSince() {
return onlineSince;
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public InetAddress getIp() {
return ip;
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public long getOnlineTimeInMillis() {
return (System.currentTimeMillis() - onlineSince);
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public long getOnlineTimeInSeconds() {
return (System.currentTimeMillis() - onlineSince) / 1000;
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public String getOnlineTimeAsText() {
final long currentTime = System.currentTimeMillis();
final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); // NOI18N
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); // NOI18N
final long elapsed = currentTime - onlineSince;
return dateFormat.format(new Date(elapsed));
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public String getIP() {
return ip.getHostAddress();
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public String getHost() {
return ip.getHostName();
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public String getUserDomain() {
return userDomain;
}
}