org.eclipse.jkube.kit.common.GenericCustomResource Maven / Gradle / Ivy
/**
* Copyright (c) 2019 Red Hat, Inc.
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at:
*
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
*/
package org.eclipse.jkube.kit.common;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.fabric8.kubernetes.api.model.HasMetadata;
import io.fabric8.kubernetes.api.model.ObjectMeta;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
// Required if using any of the ObjectMappers provided by KubernetesDeserializer (yamlMapper, jsonMapper)
@JsonDeserialize(
using = JsonDeserializer.None.class
)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class GenericCustomResource implements HasMetadata {
@JsonProperty("apiVersion")
private String apiVersion;
@JsonProperty("kind")
private String kind;
@JsonProperty("metadata")
private ObjectMeta metadata;
@JsonIgnore
private transient Map additionalProperties = new HashMap<>();
@Override
public String getApiVersion() {
return apiVersion;
}
public void setApiVersion(String apiVersion) {
this.apiVersion = apiVersion;
}
@Override
public String getKind() {
return kind;
}
public void setKind(String kind) {
this.kind = kind;
}
public ObjectMeta getMetadata() {
return metadata;
}
public void setMetadata(ObjectMeta metadata) {
this.metadata = metadata;
}
@JsonAnyGetter
public Map getAdditionalProperties() {
return this.additionalProperties;
}
public void setAdditionalProperties(Map additionalProperties) {
this.additionalProperties = additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
GenericCustomResource that = (GenericCustomResource) o;
return Objects.equals(apiVersion, that.apiVersion) && Objects.equals(kind, that.kind) && Objects.equals(metadata, that.metadata) && Objects.equals(additionalProperties, that.additionalProperties);
}
@Override
public int hashCode() {
return Objects.hash(apiVersion, kind, metadata, additionalProperties);
}
}