All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jaeksoft.searchlib.webservice.monitor.MonitorResult Maven / Gradle / Ivy

Go to download

OpenSearchServer is a powerful, enterprise-class, search engine program. Using the web user interface, the crawlers (web, file, database, ...) and the REST/RESTFul API you will be able to integrate quickly and easily advanced full-text search capabilities in your application. OpenSearchServer runs on Windows and Linux/Unix/BSD.

There is a newer version: 1.5.14
Show newest version
/**   
 * License Agreement for OpenSearchServer
 *
 * Copyright (C) 2011-2013 Emmanuel Keller / Jaeksoft
 * 
 * http://www.open-search-server.com
 * 
 * This file is part of OpenSearchServer.
 *
 * OpenSearchServer is free software: you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 * OpenSearchServer is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with OpenSearchServer. 
 *  If not, see .
 **/
package com.jaeksoft.searchlib.webservice.monitor;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map.Entry;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlValue;

import com.jaeksoft.searchlib.Monitor;
import com.jaeksoft.searchlib.SearchLibException;
import com.jaeksoft.searchlib.webservice.CommonResult;

@XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)
@XmlRootElement(name = "result")
public class MonitorResult extends CommonResult {

	@XmlElement
	final public MonitorBasic basic;

	@XmlElement(name = "property")
	final public List properties;

	public MonitorResult() {
		basic = null;
		properties = null;
	}

	public MonitorResult(boolean full) throws SearchLibException,
			SecurityException, IOException {
		super(true, null);
		Monitor monitor = new Monitor();
		basic = new MonitorBasic(monitor);
		if (full) {
			properties = new ArrayList();
			for (Entry prop : monitor.getProperties()) {
				MonitorProperties monitorProperties = new MonitorProperties(
						prop.getKey().toString(), prop.getValue().toString());
				properties.add(monitorProperties);
			}
		} else
			properties = null;
	}

	@XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)
	public static class MonitorBasic {
		@XmlAttribute
		final public int availableProcessors;

		@XmlAttribute
		final public long freeMemory;

		@XmlAttribute
		final public double memoryRate;

		@XmlAttribute
		final public long maxMemory;

		@XmlAttribute
		final public long totalMemory;

		@XmlAttribute
		final public int indexCount;

		@XmlAttribute
		final public long freeDiskSpace;

		@XmlAttribute
		final public Double freeDiskRate;

		public MonitorBasic() {
			availableProcessors = 0;
			freeMemory = 0;
			memoryRate = 0;
			maxMemory = 0;
			totalMemory = 0;
			indexCount = 0;
			freeDiskSpace = 0;
			freeDiskRate = null;
		}

		public MonitorBasic(Monitor monitor) throws SearchLibException,
				SecurityException, IOException {
			availableProcessors = monitor.getAvailableProcessors();
			freeMemory = monitor.getFreeMemory();
			memoryRate = monitor.getMemoryRate();
			maxMemory = monitor.getMaxMemory();
			totalMemory = monitor.getTotalMemory();
			indexCount = monitor.getIndexCount();
			freeDiskSpace = monitor.getFreeDiskSpace();
			freeDiskRate = monitor.getDiskRate();
		}
	}

	@XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)
	public static class MonitorProperties {

		@XmlAttribute
		final public String name;

		@XmlValue
		final public String value;

		public MonitorProperties() {
			name = null;
			value = null;
		}

		public MonitorProperties(String name, String value) {
			this.name = name;
			this.value = value;
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy