Bug 572429: [Model] Add support for source configurations to
BasicSourceModelStamp
Change-Id: I01141daa996006d8941f0e796ae5c57caa74ad09
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/BasicSourceModelStamp.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/BasicSourceModelStamp.java
index 66f0601..4b17405 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/BasicSourceModelStamp.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/model/core/impl/BasicSourceModelStamp.java
@@ -14,8 +14,13 @@
package org.eclipse.statet.ltk.model.core.impl;
+import static org.eclipse.statet.jcommons.lang.ObjectUtils.nonNullAssert;
+
+import org.eclipse.statet.jcommons.collections.ImCollections;
+import org.eclipse.statet.jcommons.collections.ImList;
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.jcommons.lang.Nullable;
+import org.eclipse.statet.jcommons.lang.ObjectUtils.ToStringBuilder;
import org.eclipse.statet.ltk.core.SourceModelStamp;
@@ -26,9 +31,18 @@
private final long sourceStamp;
+ private final ImList<Object> sourceConfigs;
+
+
+ public BasicSourceModelStamp(final long sourceStamp,
+ final ImList<Object> sourceConfigs) {
+ this.sourceStamp= sourceStamp;
+ this.sourceConfigs= nonNullAssert(sourceConfigs);
+ }
public BasicSourceModelStamp(final long sourceStamp) {
this.sourceStamp= sourceStamp;
+ this.sourceConfigs= ImCollections.emptyList();
}
@@ -40,14 +54,28 @@
@Override
public int hashCode() {
- return (int) (this.sourceStamp ^ (this.sourceStamp >>> 32));
+ int h= (int)(this.sourceStamp ^ (this.sourceStamp >>> 32));
+ h= 31 * h + this.sourceConfigs.hashCode();
+ return h;
}
@Override
- public boolean equals(final @Nullable Object other) {
- return (other instanceof SourceModelStamp
- && getClass() == other.getClass()
- && this.sourceStamp == ((SourceModelStamp)other).getContentStamp() );
+ public boolean equals(final @Nullable Object obj) {
+ if (obj instanceof BasicSourceModelStamp
+ && getClass() == obj.getClass() ) {
+ final var other= (BasicSourceModelStamp)obj;
+ return (this.sourceStamp == other.sourceStamp
+ && this.sourceConfigs.equals(other.sourceConfigs) );
+ }
+ return false;
+ }
+
+ @Override
+ public String toString() {
+ final var sb= new ToStringBuilder(BasicSourceModelStamp.class);
+ sb.append(' ', this.sourceStamp);
+ sb.addProp("sourceConfigs", this.sourceConfigs); //$NON-NLS-1$
+ return sb.toString();
}
}