public static Function<ClassInfo, HierarchicalClassId> toFullClassId() { return a -> a.getHierarchicalId(); } }
@Override public boolean hasClassChanged(final ClassName className) { final ClassHistory historic = this.previousClassPath.get(className); if (historic == null) { return true; } final Optional<ClassInfo> current = this.code.fetchClass(className); return !current.get().getHierarchicalId().equals(historic.getId()); }
private ClassHistory makeHistory(final ClassInfo ci) { return makeHistory(ci.getHierarchicalId()); }
public static Function<ClassInfo, HierarchicalClassId> toFullClassId() { return a -> a.getHierarchicalId(); } }
@Test public void shouldCreateDifferentHierarchicalHashWhenOuterClassChanges() { final ClassInfo outer = new ClassInfo(emptyClassPointer(), emptyClassPointer(), this.data); final ClassInfo classA = new ClassInfo(emptyClassPointer(), emptyClassPointer(), this.data); final ClassInfo classB = new ClassInfo(emptyClassPointer(), pointerTo(outer), this.data); assertFalse(classA.getHierarchicalId().getHierarchicalHash() .equals(classB.getHierarchicalId().getHierarchicalHash())); }
@Test public void shouldCreateDifferentHierarchicalHashWhenParentClassChanges() { final ClassInfo parent = new ClassInfo(emptyClassPointer(), emptyClassPointer(), this.data); final ClassInfo classA = new ClassInfo(emptyClassPointer(), emptyClassPointer(), this.data); final ClassInfo classB = new ClassInfo(pointerTo(parent), emptyClassPointer(), this.data); assertFalse(classA.getHierarchicalId().getHierarchicalHash() .equals(classB.getHierarchicalId().getHierarchicalHash())); }
@Test public void shouldCreateDifferentHierarchicalHashWhenOuterClassChanges() { final ClassInfo outer = new ClassInfo(emptyClassPointer(), emptyClassPointer(), this.data); final ClassInfo classA = new ClassInfo(emptyClassPointer(), emptyClassPointer(), this.data); final ClassInfo classB = new ClassInfo(emptyClassPointer(), pointerTo(outer), this.data); assertFalse(classA.getHierarchicalId().getHierarchicalHash() .equals(classB.getHierarchicalId().getHierarchicalHash())); }
@Test public void shouldCreateDifferentHierarchicalHashWhenParentClassChanges() { final ClassInfo parent = new ClassInfo(emptyClassPointer(), emptyClassPointer(), this.data); final ClassInfo classA = new ClassInfo(emptyClassPointer(), emptyClassPointer(), this.data); final ClassInfo classB = new ClassInfo(pointerTo(parent), emptyClassPointer(), this.data); assertFalse(classA.getHierarchicalId().getHierarchicalHash() .equals(classB.getHierarchicalId().getHierarchicalHash())); }