package com.thinkbiganalytics.metadata.rest.model.sla;
/*-
* #%L
* thinkbig-metadata-rest-model
* %%
* Copyright (C) 2017 ThinkBig Analytics
* %%
* 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.
* #L%
*/
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.thinkbiganalytics.metadata.rest.model.feed.Feed;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
*/
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@JsonIgnoreProperties(ignoreUnknown = true)
public class FeedServiceLevelAgreement extends ServiceLevelAgreement {
private ServiceLevelAgreement serviceLevelAgreement;
private Set<Feed> feeds;
public FeedServiceLevelAgreement(com.thinkbiganalytics.metadata.rest.model.sla.ServiceLevelAgreement restModel) {
this.serviceLevelAgreement = restModel;
}
public Set<Feed> getFeeds() {
return feeds;
}
public void setFeeds(Set<Feed> feeds) {
this.feeds = feeds;
}
@JsonProperty("feedNames")
public String getFeedNames() {
String feedNames = "";
if (feeds != null && !feeds.isEmpty()) {
feedNames = feeds.stream().map(feed -> feed.getCategory().getSystemName() + "." + feed.getSystemName()).collect(Collectors.joining(","));
}
return feedNames;
}
@Override
public String getId() {
return serviceLevelAgreement.getId();
}
@Override
public void setId(String id) {
serviceLevelAgreement.setId(id);
}
@Override
public String getName() {
return serviceLevelAgreement.getName();
}
@Override
public void setName(String name) {
serviceLevelAgreement.setName(name);
}
@Override
public String getDescription() {
return serviceLevelAgreement.getDescription();
}
@Override
public void setDescription(String description) {
serviceLevelAgreement.setDescription(description);
}
@Override
@JsonIgnore
public List<Obligation> getObligations() {
return serviceLevelAgreement.getObligations();
}
@Override
public void addObligation(Obligation ob) {
serviceLevelAgreement.addObligation(ob);
}
@Override
public List<ObligationGroup> getGroups() {
return serviceLevelAgreement.getGroups();
}
@Override
public void setGroups(List<ObligationGroup> groups) {
serviceLevelAgreement.setGroups(groups);
}
@Override
public void addGroup(ObligationGroup group) {
serviceLevelAgreement.addGroup(group);
}
@Override
public ObligationGroup getDefaultGroup() {
return serviceLevelAgreement.getDefaultGroup();
}
@Override
public void setDefaultGroup(ObligationGroup defaultGroup) {
serviceLevelAgreement.setDefaultGroup(defaultGroup);
}
@Override
public List<ServiceLevelAgreementCheck> getSlaChecks() {
return serviceLevelAgreement.getSlaChecks();
}
@Override
public void setSlaChecks(List<ServiceLevelAgreementCheck> slaChecks) {
serviceLevelAgreement.setSlaChecks(slaChecks);
}
@Override
public void addSlaCheckError(String error) {
serviceLevelAgreement.addSlaCheckError(error);
}
@Override
public void addObligationError(String error) {
serviceLevelAgreement.addObligationError(error);
}
@Override
public List<String> getObligationErrors() {
return serviceLevelAgreement.getObligationErrors();
}
@Override
public void setObligationErrors(List<String> obligationErrors) {
serviceLevelAgreement.setObligationErrors(obligationErrors);
}
@Override
public List<String> getSlaCheckErrors() {
return serviceLevelAgreement.getSlaCheckErrors();
}
@Override
public void setSlaCheckErrors(List<String> slaCheckErrors) {
serviceLevelAgreement.setSlaCheckErrors(slaCheckErrors);
}
}