// Copyright 2014-2015 Boundary, Inc.
//
// 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.
package com.boundary.sdk.snmp.metric;

import javax.validation.constraints.NotNull;

import com.fasterxml.jackson.annotation.JsonProperty;

public class OidMap {
	
	@NotNull
	@JsonProperty
	private String oid;
	@NotNull
	@JsonProperty("metric-id")
	private String metricId;
	@JsonProperty
	private boolean enabled;
	@JsonProperty
	private String description;
	
	public OidMap() {
		this.enabled = true;
	}
	
	public String getOid() {
		return oid;
	}
	public void setOid(String oid) {
		this.oid = oid;
	}
	public String getMetricId() {
		return metricId;
	}
	public void setMetricId(String metricId) {
		this.metricId = metricId;
	}
	public boolean isEnabled() {
		return enabled;
	}
	public void setEnabled(boolean enabled) {
		this.enabled = enabled;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((description == null) ? 0 : description.hashCode());
		result = prime * result
				+ ((metricId == null) ? 0 : metricId.hashCode());
		result = prime * result + ((oid == null) ? 0 : oid.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		OidMap other = (OidMap) obj;
		if (description == null) {
			if (other.description != null)
				return false;
		} else if (!description.equals(other.description))
			return false;
		if (metricId == null) {
			if (other.metricId != null)
				return false;
		} else if (!metricId.equals(other.metricId))
			return false;
		if (oid == null) {
			if (other.oid != null)
				return false;
		} else if (!oid.equals(other.oid))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "Oid [oid=" + oid + ", metricId=" + metricId + ", enabled="
				+ enabled + ", description=" + description + "]";
	}

}

@@ -799,16 +799,53 @@
 ng oid;%0A
+%09@JsonProperty%0A%09private String name;%0A
 %09@NotNul
@@ -1252,32 +1252,136 @@
  = metricId;%0A%09%7D%0A
+%09public String getName() %7B%0A%09%09return name;%0A%09%7D%0A%09public void setName(String name) %7B%0A%09%09this.name = name;%0A%09%7D%0A
 %09public boolean 

Add name field to store a human readable name