blob: f185183b4e43f7478cb02c5669ddadd01da707b8 [file] [log] [blame]
/*
* 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.jutils.jhardware;
import java.util.Map;
import java.util.Set;
import org.jutils.jhardware.info.HardwareFactory;
import org.jutils.jhardware.info.InfoType;
import org.jutils.jhardware.model.BiosInfo;
import org.jutils.jhardware.model.DisplayInfo;
import org.jutils.jhardware.model.GraphicsCardInfo;
import org.jutils.jhardware.model.MemoryInfo;
import org.jutils.jhardware.model.MotherboardInfo;
import org.jutils.jhardware.model.NetworkInfo;
import org.jutils.jhardware.model.OSInfo;
import org.jutils.jhardware.model.ProcessorInfo;
/**
* Static class that allows to query for Hardware details.<p>
* Each method return the information related with a different component
* (CPU, memory, motherboard....). There are some important data that comes
* typed in the response. This is the information that is common in different
* system. The complete and specific information is returned in a Map.
*
* @author Javier Garcia Alonso
*/
public class HardwareInfo {
/**
* Hide constructor
*/
private HardwareInfo() {
}
/**
* Gets information related with CPU
*
* @return object with typed common data and a map with full data
*/
public static ProcessorInfo getProcessorInfo() {
return (ProcessorInfo)HardwareFactory.get(InfoType.PROCESSOR).getInfo();
}
/**
* Gets information related with memory
*
* @return object with typed common data and a map with full data
*/
public static MemoryInfo getMemoryInfo() {
return (MemoryInfo)HardwareFactory.get(InfoType.MEMORY).getInfo();
}
/**
* Gets information related with the Operating System
*
* @return object with typed common data and a map with full data
*/
public static OSInfo getOSInfo() {
return (OSInfo)HardwareFactory.get(InfoType.OS).getInfo();
}
/**
* Gets information related with the Network
*
* @return object with typed common data and a map with full data
*/
public static NetworkInfo getNetworkInfo() {
return (NetworkInfo)HardwareFactory.get(InfoType.NETWORK).getInfo();
}
public static void main(String [] args) {
ProcessorInfo info = HardwareInfo.getProcessorInfo();
System.out.println("Cache size: " + info.getCacheSize());
System.out.println("Family: " + info.getFamily());
System.out.println("Speed (Mhz): " + info.getMhz());
System.out.println("Model: " + info.getModel());
System.out.println("Model name: " + info.getModelName());
System.out.println("Number of cores: " + info.getNumCores());
System.out.println("Stepping: " + info.getStepping());
System.out.println("Temperature: " + info.getTemperature());
System.out.println("Vendor Id: " + info.getVendorId());
Set<Map.Entry<String, String>> fullInfos = info.getFullInfo().entrySet();
for(Map.Entry<String, String> fullInfo: fullInfos) {
System.out.println(fullInfo.getKey() + ": " + fullInfo.getValue());
}
}
}