public MavenProjectChanges getChanges(State newState) {
      if (myLastReadStamp == 0) return MavenProjectChanges.ALL;

      MavenProjectChangesBuilder result = new MavenProjectChangesBuilder();

      result.setHasPackagingChanges(!Objects.equals(myPackaging, newState.myPackaging));

      result.setHasOutputChanges(!Objects.equals(myFinalName, newState.myFinalName)
                                 || !Objects.equals(myBuildDirectory, newState.myBuildDirectory)
                                 || !Objects.equals(myOutputDirectory, newState.myOutputDirectory)
                                 || !Objects.equals(myTestOutputDirectory, newState.myTestOutputDirectory));

      result.setHasSourceChanges(!Comparing.equal(mySources, newState.mySources)
                                 || !Comparing.equal(myTestSources, newState.myTestSources)
                                 || !Comparing.equal(myResources, newState.myResources)
                                 || !Comparing.equal(myTestResources, newState.myTestResources));

      boolean repositoryChanged = !Comparing.equal(myLocalRepository, newState.myLocalRepository);

      result.setHasDependencyChanges(repositoryChanged || !Comparing.equal(myDependencies, newState.myDependencies));
      result.setHasPluginChanges(repositoryChanged || !Comparing.equal(myPlugins, newState.myPlugins));
      result.setHasPropertyChanges(!Comparing.equal(myProperties, newState.myProperties));
      return result;
    }
public MavenProjectChanges getChanges(State newState)