package rocks.inspectit.agent.java.sensor.platform.provider.sun;
import rocks.inspectit.agent.java.sensor.platform.provider.MemoryInfoProvider;
import rocks.inspectit.agent.java.sensor.platform.provider.OperatingSystemInfoProvider;
import rocks.inspectit.agent.java.sensor.platform.provider.PlatformSensorInfoProvider;
import rocks.inspectit.agent.java.sensor.platform.provider.RuntimeInfoProvider;
import rocks.inspectit.agent.java.sensor.platform.provider.ThreadInfoProvider;
import rocks.inspectit.agent.java.sensor.platform.provider.def.DefaultMemoryInfoProvider;
import rocks.inspectit.agent.java.sensor.platform.provider.def.DefaultRuntimeInfoProvider;
import rocks.inspectit.agent.java.sensor.platform.provider.def.DefaultThreadInfoProvider;
/**
* Special {@link PlatformSensorInfoProvider} for SunVM..
*
* @author Ivan Senic
*
*/
public class SunPlatformSensorInfoProvider implements PlatformSensorInfoProvider {
/**
* {@link MemoryInfoProvider}.
*/
private static final MemoryInfoProvider MEMORY_INFO_PROVIDER = new DefaultMemoryInfoProvider();
/**
* {@link OperatingSystemInfoProvider}.
*/
private static final OperatingSystemInfoProvider OPERATING_SYSTEM_INFO_PROVIDER = new SunOperatingSystemInfoProvider();
/**
* {@link RuntimeInfoProvider}.
*/
private static final RuntimeInfoProvider RUNTIME_INFO_PROVIDER = new DefaultRuntimeInfoProvider();
/**
* {@link ThreadInfoProvider}.
*/
private static final ThreadInfoProvider THREAD_INFO_PROVIDER = new DefaultThreadInfoProvider();
/**
* {@inheritDoc}
*/
@Override
public MemoryInfoProvider getMemoryInfoProvider() {
return MEMORY_INFO_PROVIDER;
}
/**
* {@inheritDoc}
*/
@Override
public OperatingSystemInfoProvider getOperatingSystemInfoProvider() {
return OPERATING_SYSTEM_INFO_PROVIDER;
}
/**
* {@inheritDoc}
*/
@Override
public RuntimeInfoProvider getRuntimeInfoProvider() {
return RUNTIME_INFO_PROVIDER;
}
/**
* {@inheritDoc}
*/
@Override
public ThreadInfoProvider getThreadInfoProvider() {
return THREAD_INFO_PROVIDER;
}
}