package sk.stuba.fiit.perconik.activity.data.system;
import static com.google.common.base.StandardSystemProperty.JAVA_CLASS_PATH;
import static com.google.common.base.StandardSystemProperty.JAVA_COMPILER;
import static com.google.common.base.StandardSystemProperty.JAVA_EXT_DIRS;
import static com.google.common.base.StandardSystemProperty.JAVA_HOME;
import static com.google.common.base.StandardSystemProperty.JAVA_IO_TMPDIR;
import static com.google.common.base.StandardSystemProperty.JAVA_LIBRARY_PATH;
import static com.google.common.base.StandardSystemProperty.JAVA_SPECIFICATION_NAME;
import static com.google.common.base.StandardSystemProperty.JAVA_SPECIFICATION_VENDOR;
import static com.google.common.base.StandardSystemProperty.JAVA_SPECIFICATION_VERSION;
import static com.google.common.base.StandardSystemProperty.JAVA_VENDOR;
import static com.google.common.base.StandardSystemProperty.JAVA_VENDOR_URL;
import static com.google.common.base.StandardSystemProperty.JAVA_VERSION;
import static com.google.common.base.StandardSystemProperty.JAVA_VM_NAME;
import static com.google.common.base.StandardSystemProperty.JAVA_VM_SPECIFICATION_NAME;
import static com.google.common.base.StandardSystemProperty.JAVA_VM_SPECIFICATION_VENDOR;
import static com.google.common.base.StandardSystemProperty.JAVA_VM_SPECIFICATION_VERSION;
import static com.google.common.base.StandardSystemProperty.JAVA_VM_VENDOR;
import static com.google.common.base.StandardSystemProperty.JAVA_VM_VERSION;
import static com.google.common.base.StandardSystemProperty.OS_ARCH;
import static com.google.common.base.StandardSystemProperty.OS_NAME;
import static com.google.common.base.StandardSystemProperty.OS_VERSION;
import static com.google.common.base.StandardSystemProperty.USER_DIR;
import static com.google.common.base.StandardSystemProperty.USER_HOME;
import static com.google.common.base.StandardSystemProperty.USER_NAME;
import static sk.stuba.fiit.perconik.utilities.io.Conversions.pathOrNull;
import static sk.stuba.fiit.perconik.utilities.net.Conversions.urlOrNull;
public class StandardSystemProbe implements SystemProbe {
public StandardSystemProbe() {}
public SystemData get() {
SystemData data = new SystemData();
data.setJava(new JavaData());
data.java.setVendor(JAVA_VENDOR.value());
data.java.setVendorUrl(urlOrNull(JAVA_VENDOR_URL.value()));
data.java.setVersion(JAVA_VERSION.value());
data.java.setSpecification(new SpecificationData());
data.java.specification.setName(JAVA_SPECIFICATION_NAME.value());
data.java.specification.setVendor(JAVA_SPECIFICATION_VENDOR.value());
data.java.specification.setVersion(JAVA_SPECIFICATION_VERSION.value());
data.java.setVirtualMachine(new VirtualMachineData());
data.java.virtualMachine.setName(JAVA_VM_NAME.value());
data.java.virtualMachine.setVendor(JAVA_VM_VENDOR.value());
data.java.virtualMachine.setVersion(JAVA_VM_VERSION.value());
data.java.virtualMachine.setSpecification(new SpecificationData());
data.java.virtualMachine.specification.setName(JAVA_VM_SPECIFICATION_NAME.value());
data.java.virtualMachine.specification.setVendor(JAVA_VM_SPECIFICATION_VENDOR.value());
data.java.virtualMachine.specification.setVersion(JAVA_VM_SPECIFICATION_VERSION.value());
data.java.setHome(pathOrNull(JAVA_HOME.value()));
data.java.setCompiler(JAVA_COMPILER.value());
data.java.setClassPath(pathOrNull(JAVA_CLASS_PATH.value()));
data.java.setLibraryPath(pathOrNull(JAVA_LIBRARY_PATH.value()));
data.java.setExtensionDirectories(pathOrNull(JAVA_EXT_DIRS.value()));
data.java.setTemporaryDirectory(pathOrNull(JAVA_IO_TMPDIR.value()));
data.setOperatingSystem(new OperatingSystemData());
data.operatingSystem.setArchitecture(OS_ARCH.value());
data.operatingSystem.setName(OS_NAME.value());
data.operatingSystem.setVersion(OS_VERSION.value());
data.setUser(new UserData());
data.user.setName(USER_NAME.value());
data.user.setHome(pathOrNull(USER_HOME.value()));
data.user.setDirectory(pathOrNull(USER_DIR.value()));
return data;
}
}