diff --git a/api/src/main/java/org/opennms/integration/api/v1/model/MonitoredService.java b/api/src/main/java/org/opennms/integration/api/v1/model/MonitoredService.java index 1d05124..7e18d4d 100644 --- a/api/src/main/java/org/opennms/integration/api/v1/model/MonitoredService.java +++ b/api/src/main/java/org/opennms/integration/api/v1/model/MonitoredService.java @@ -28,14 +28,16 @@ package org.opennms.integration.api.v1.model; -import java.util.List; - import org.opennms.integration.api.v1.annotations.Model; +import java.util.List; + @Model public interface MonitoredService { String getName(); List getMetaData(); + + boolean getStatus(); } diff --git a/common/src/main/java/org/opennms/integration/api/v1/model/immutables/ImmutableMonitoredService.java b/common/src/main/java/org/opennms/integration/api/v1/model/immutables/ImmutableMonitoredService.java index 90d0685..c325b26 100644 --- a/common/src/main/java/org/opennms/integration/api/v1/model/immutables/ImmutableMonitoredService.java +++ b/common/src/main/java/org/opennms/integration/api/v1/model/immutables/ImmutableMonitoredService.java @@ -28,19 +28,16 @@ package org.opennms.integration.api.v1.model.immutables; -import java.net.InetAddress; -import java.util.LinkedList; -import java.util.List; -import java.util.Objects; -import java.util.Optional; - import org.opennms.integration.api.v1.model.IpInterface; import org.opennms.integration.api.v1.model.MetaData; import org.opennms.integration.api.v1.model.MonitoredService; -import org.opennms.integration.api.v1.model.SnmpInterface; import org.opennms.integration.api.v1.util.ImmutableCollections; import org.opennms.integration.api.v1.util.MutableCollections; +import java.util.LinkedList; +import java.util.List; +import java.util.Objects; + /** * An immutable implementation of {@link IpInterface} that enforces deep immutability. */ @@ -48,14 +45,17 @@ public final class ImmutableMonitoredService implements MonitoredService { private final String name; private final List metaData; - private ImmutableMonitoredService(final String name, final List metaData) { + private final boolean status; + + private ImmutableMonitoredService(final String name, final boolean status, final List metaData) { this.name = name; + this.status = status; this.metaData = ImmutableCollections.with(ImmutableMetaData::immutableCopy) .newList(metaData); } - public static ImmutableMonitoredService newInstance(final String name, final List metaData) { - return new ImmutableMonitoredService(Objects.requireNonNull(name), + public static ImmutableMonitoredService newInstance(final String name, final boolean status, final List metaData) { + return new ImmutableMonitoredService(Objects.requireNonNull(name), status, metaData); } @@ -63,7 +63,7 @@ public static MonitoredService immutableCopy(MonitoredService monitoredService) if (monitoredService == null || monitoredService instanceof ImmutableMonitoredService) { return monitoredService; } - return newInstance(monitoredService.getName(), monitoredService.getMetaData()); + return newInstance(monitoredService.getName(), monitoredService.getStatus(), monitoredService.getMetaData()); } public static Builder newBuilder() { @@ -78,11 +78,14 @@ public static final class Builder { private String name; private List metaData; + private boolean status; + private Builder() { } private Builder(final MonitoredService monitoredService) { this.name = monitoredService.getName(); + this.status = monitoredService.getStatus(); this.metaData = MutableCollections.copyListFromNullable(monitoredService.getMetaData(), LinkedList::new); } @@ -91,6 +94,11 @@ public Builder setName(final String name) { return this; } + public Builder setStatus(final boolean status) { + this.status = status; + return this; + } + public Builder setMetaData(List metaData) { this.metaData = metaData; return this; @@ -105,7 +113,7 @@ public Builder addMetaData(MetaData metaData) { } public ImmutableMonitoredService build() { - return ImmutableMonitoredService.newInstance(this.name, this.metaData); + return ImmutableMonitoredService.newInstance(this.name, this.status, this.metaData); } } @@ -119,18 +127,24 @@ public List getMetaData() { return metaData; } + @Override + public boolean getStatus() { + return this.status; + } + @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ImmutableMonitoredService that = (ImmutableMonitoredService) o; return Objects.equals(this.name, that.name) && - Objects.equals(this.metaData, that.metaData); + Objects.equals(this.metaData, that.metaData) && + Objects.equals(this.status, that.status); } @Override public int hashCode() { - return Objects.hash(this.name, this.metaData); + return Objects.hash(this.name, this.metaData, this.status); } @Override @@ -138,6 +152,7 @@ public String toString() { return "ImmutableIpInterface{" + "name=" + this.name + ", metaData=" + metaData + + ", status=" + status + '}'; } }