/* * Copyright (c) 2010-2016 Evolveum * * 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.evolveum.midpoint.model.impl.visualizer.output; import com.evolveum.midpoint.model.api.visualizer.SceneDeltaItem; import com.evolveum.midpoint.model.api.visualizer.SceneItemValue; import com.evolveum.midpoint.prism.delta.ItemDelta; import com.evolveum.midpoint.util.DebugDumpable; import com.evolveum.midpoint.util.DebugUtil; import org.jetbrains.annotations.NotNull; import java.util.Collections; import java.util.List; /** * @author mederly */ public class SceneDeltaItemImpl extends SceneItemImpl implements SceneDeltaItem, DebugDumpable { @NotNull private List<SceneItemValueImpl> oldValues = Collections.emptyList(); @NotNull private List<SceneItemValueImpl> addedValues = Collections.emptyList(); @NotNull private List<SceneItemValueImpl> deletedValues = Collections.emptyList(); @NotNull private List<SceneItemValueImpl> unchangedValues = Collections.emptyList(); private ItemDelta<?,?> sourceDelta; public SceneDeltaItemImpl(NameImpl name) { super(name); } @NotNull @Override public List<? extends SceneItemValue> getOldValues() { return oldValues; } public void setOldValues(@NotNull List<SceneItemValueImpl> oldValues) { this.oldValues = oldValues; } @NotNull @Override public List<SceneItemValueImpl> getAddedValues() { return addedValues; } public void setAddedValues(@NotNull List<SceneItemValueImpl> addedValues) { this.addedValues = addedValues; } @NotNull public List<SceneItemValueImpl> getDeletedValues() { return deletedValues; } public void setDeletedValues(@NotNull List<SceneItemValueImpl> deletedValues) { this.deletedValues = deletedValues; } @NotNull public List<SceneItemValueImpl> getUnchangedValues() { return unchangedValues; } public void setUnchangedValues(@NotNull List<SceneItemValueImpl> unchangedValues) { this.unchangedValues = unchangedValues; } @Override public ItemDelta<?, ?> getSourceDelta() { return sourceDelta; } public void setSourceDelta(ItemDelta<?, ?> sourceDelta) { this.sourceDelta = sourceDelta; } @Override public String debugDump() { return debugDump(0); } @Override public String debugDump(int indent) { StringBuilder sb = debugDumpCommon(indent); if (sourceDelta != null) { sb.append(" DELTA"); } sb.append("\n"); DebugUtil.indentDebugDump(sb, indent+1); sb.append("OLD: ").append(oldValues).append("\n"); DebugUtil.indentDebugDump(sb, indent+1); sb.append("NEW: ").append(newValues).append("\n"); DebugUtil.indentDebugDump(sb, indent+1); sb.append("ADDED: ").append(addedValues).append("\n"); DebugUtil.indentDebugDump(sb, indent+1); sb.append("DELETED: ").append(deletedValues).append("\n"); DebugUtil.indentDebugDump(sb, indent+1); sb.append("UNCHANGED: ").append(unchangedValues); return sb.toString(); } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; if (!super.equals(o)) return false; SceneDeltaItemImpl that = (SceneDeltaItemImpl) o; if (!oldValues.equals(that.oldValues)) return false; if (!addedValues.equals(that.addedValues)) return false; if (!deletedValues.equals(that.deletedValues)) return false; if (!unchangedValues.equals(that.unchangedValues)) return false; return !(sourceDelta != null ? !sourceDelta.equals(that.sourceDelta) : that.sourceDelta != null); } @Override public int hashCode() { int result = super.hashCode(); result = 31 * result + oldValues.hashCode(); result = 31 * result + addedValues.hashCode(); result = 31 * result + deletedValues.hashCode(); result = 31 * result + unchangedValues.hashCode(); result = 31 * result + (sourceDelta != null ? sourceDelta.hashCode() : 0); return result; } }