/*
* DSS - Digital Signature Services
*
* Copyright (C) 2013 European Commission, Directorate-General Internal Market and Services (DG MARKT), B-1049 Bruxelles/Brussel
*
* Developed by: 2013 ARHS Developments S.A. (rue Nicolas Bové 2B, L-1253 Luxembourg) http://www.arhs-developments.com
*
* This file is part of the "DSS - Digital Signature Services" project.
*
* "DSS - Digital Signature Services" is free software: you can redistribute it and/or modify it under the terms of
* the GNU Lesser General Public License as published by the Free Software Foundation, either version 2.1 of the
* License, or (at your option) any later version.
*
* DSS 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 Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with
* "DSS - Digital Signature Services". If not, see <http://www.gnu.org/licenses/>.
*/
package eu.europa.ec.markt.dss.validation102853.tsl;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import eu.europa.ec.markt.tsl.jaxb.tsl.DigitalIdentityListType;
import eu.europa.ec.markt.tsl.jaxb.tsl.ExtensionType;
import eu.europa.ec.markt.tsl.jaxb.tsl.InternationalNamesType;
import eu.europa.ec.markt.tsl.jaxb.tsl.MultiLangNormStringType;
import eu.europa.ec.markt.tsl.jaxb.tsl.ServiceHistoryInstanceType;
/**
* Historical entry in the TL for the service
*
* @version $Revision: 946 $ - $Date: 2011-06-06 17:15:14 +0200 (Mon, 06 Jun 2011) $
*/
class HistoricalTrustService extends AbstractTrustService {
private ServiceHistoryInstanceType service;
protected AbstractTrustService previousEntry;
/**
* The default constructor for TrustServiceHistoryEntry.
*/
public HistoricalTrustService(ServiceHistoryInstanceType serviceHistoryInstance) {
this.service = serviceHistoryInstance;
}
/**
* Set the previous entry in the Trusted List
*
* @param previousEntry the previousEntry to set
*/
void setPreviousEntry(AbstractTrustService previousEntry) {
this.previousEntry = previousEntry;
}
@Override
List<ExtensionType> getExtensions() {
if (service != null && service.getServiceInformationExtensions() != null) {
return service.getServiceInformationExtensions().getExtension();
} else {
return Collections.emptyList();
}
}
@Override
DigitalIdentityListType getServiceDigitalIdentity() {
return service.getServiceDigitalIdentity();
}
@Override
String getStatus() {
return service.getServiceStatus();
}
@Override
Date getStatusStartDate() {
return service.getStatusStartingTime().toGregorianCalendar().getTime();
}
@Override
Date getStatusEndDate() {
return previousEntry.getStatusStartDate();
}
@Override
String getType() {
return service.getServiceTypeIdentifier();
}
@Override
String getServiceName() {
/* Return the english name or the first name */
InternationalNamesType names = service.getServiceName();
for (MultiLangNormStringType s : names.getName()) {
if ("en".equalsIgnoreCase(s.getLang())) {
return s.getValue();
}
}
return names.getName().get(0).getValue();
}
}