
com.jaeksoft.searchlib.webservice.replication.ReplicationResult Maven / Gradle / Ivy
/**
* License Agreement for OpenSearchServer
*
* Copyright (C) 2015 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.replication;
import java.lang.Thread.State;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.jaeksoft.searchlib.replication.ReplicationItem;
import com.jaeksoft.searchlib.replication.ReplicationMaster;
import com.jaeksoft.searchlib.replication.ReplicationThread;
import com.jaeksoft.searchlib.replication.ReplicationType;
import com.jaeksoft.searchlib.webservice.CommonResult;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "result")
@JsonInclude(Include.NON_EMPTY)
public class ReplicationResult extends CommonResult {
public final String name;
public final ReplicationType replicationType;
public final String remoteUrl;
public final String remoteLogin;
public final String remoteApiKey;
public final String remoteIndexName;
public final Integer secTimeOut;
public final Boolean isActiveThread;
public final ThreadResult lastThread;
@XmlAccessorType(XmlAccessType.FIELD)
@JsonInclude(Include.NON_EMPTY)
public static class ThreadResult {
public final String info;
public final State state;
public final Long durationMs;
public final Date startDate;
public ThreadResult() {
info = null;
state = null;
durationMs = null;
startDate = null;
}
public ThreadResult(ReplicationThread thread) {
info = thread.getStatInfo();
state = thread.getThreadState();
durationMs = thread.getDuration();
startDate = new Date(thread.getStartTime());
}
}
public ReplicationResult() {
name = null;
replicationType = null;
remoteUrl = null;
remoteLogin = null;
remoteApiKey = null;
remoteIndexName = null;
secTimeOut = null;
isActiveThread = null;
lastThread = null;
}
ReplicationResult(Boolean successful, ReplicationItem replicationItem)
throws MalformedURLException, URISyntaxException {
super(successful, null);
name = replicationItem.getName();
replicationType = replicationItem.getReplicationType();
remoteUrl = replicationItem.getInstanceUrl();
remoteLogin = replicationItem.getLogin();
remoteApiKey = replicationItem.getApiKey();
remoteIndexName = replicationItem.getIndexName();
secTimeOut = replicationItem.getSecTimeOut();
isActiveThread = replicationItem.isThread();
ReplicationThread lt = replicationItem.getLastThread();
lastThread = lt == null ? null : new ThreadResult(lt);
}
static List toArray(
ReplicationItem[] replicationItemArray)
throws MalformedURLException, URISyntaxException {
List replicationResultList = new ArrayList();
if (replicationItemArray == null)
return replicationResultList;
for (ReplicationItem replicationItem : replicationItemArray)
replicationResultList.add(new ReplicationResult(null,
replicationItem));
return replicationResultList;
}
ReplicationItem getReplicationItem(ReplicationMaster replicationMaster)
throws MalformedURLException, URISyntaxException {
ReplicationItem replicationItem = new ReplicationItem(replicationMaster);
if (replicationType != null)
replicationItem.setReplicationType(replicationType);
if (remoteUrl != null)
replicationItem.setInstanceUrl(remoteUrl);
if (remoteLogin != null)
replicationItem.setLogin(remoteLogin);
if (remoteApiKey != null)
replicationItem.setApiKey(remoteApiKey);
if (remoteIndexName != null)
replicationItem.setIndexName(remoteIndexName);
if (secTimeOut != null)
replicationItem.setSecTimeOut(secTimeOut);
return replicationItem;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy