/*
* Copyright © 2016 Cask Data, 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 co.cask.cdap.proto.audit.payload.metadata;
import co.cask.cdap.api.annotation.Beta;
import co.cask.cdap.proto.audit.AuditPayload;
import co.cask.cdap.proto.metadata.Metadata;
import co.cask.cdap.proto.metadata.MetadataScope;
import java.util.Map;
import java.util.Objects;
/**
* Represents changes to metadata of an entity.
*/
@Beta
public class MetadataPayload extends AuditPayload {
private final Map<MetadataScope, Metadata> previous;
private final Map<MetadataScope, Metadata> additions;
private final Map<MetadataScope, Metadata> deletions;
public MetadataPayload(Map<MetadataScope, Metadata> previous,
Map<MetadataScope, Metadata> additions,
Map<MetadataScope, Metadata> deletions) {
this.previous = previous;
this.additions = additions;
this.deletions = deletions;
}
public Map<MetadataScope, Metadata> getPrevious() {
return previous;
}
public Map<MetadataScope, Metadata> getAdditions() {
return additions;
}
public Map<MetadataScope, Metadata> getDeletions() {
return deletions;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof MetadataPayload)) {
return false;
}
MetadataPayload that = (MetadataPayload) o;
return Objects.equals(previous, that.previous) &&
Objects.equals(additions, that.additions) &&
Objects.equals(deletions, that.deletions);
}
@Override
public int hashCode() {
return Objects.hash(previous, additions, deletions);
}
@Override
public String toString() {
return "MetadataPayload{" +
"previous=" + previous +
", additions=" + additions +
", deletions=" + deletions +
"} " + super.toString();
}
}