977977e6ea
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9 260f80e4-7a28-3924-810f-c04153c831b5
58 lines
1.5 KiB
Java
58 lines
1.5 KiB
Java
// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
package com.google.dart.compiler;
|
|
|
|
import com.google.dart.compiler.ast.DartUnit;
|
|
|
|
/**
|
|
* Representation of changes to source.
|
|
*/
|
|
public abstract class SourceDelta {
|
|
public abstract Source getSourceBefore();
|
|
|
|
public abstract DartSource getSourceAfter();
|
|
|
|
public abstract DartUnit getUnitAfter();
|
|
|
|
public final SourceDelta after(DartSource sourceAfter) {
|
|
return new BeforeAfter(getSourceBefore(), sourceAfter, null);
|
|
}
|
|
|
|
public final SourceDelta after(DartUnit nodeAfter) {
|
|
return new BeforeAfter(getSourceBefore(), null, nodeAfter);
|
|
}
|
|
|
|
public static SourceDelta before(final DartSource sourceBefore) {
|
|
return new BeforeAfter(sourceBefore, sourceBefore, null);
|
|
}
|
|
|
|
private static class BeforeAfter extends SourceDelta {
|
|
private final Source sourceBefore;
|
|
private final DartSource sourceAfter;
|
|
private final DartUnit nodeAfter;
|
|
|
|
BeforeAfter(Source sourceBefore, DartSource sourceAfter, DartUnit nodeAfter) {
|
|
this.sourceBefore = sourceBefore;
|
|
this.sourceAfter = sourceAfter;
|
|
this.nodeAfter = nodeAfter;
|
|
}
|
|
|
|
@Override
|
|
public Source getSourceBefore() {
|
|
return sourceBefore;
|
|
}
|
|
|
|
@Override
|
|
public DartSource getSourceAfter() {
|
|
return sourceAfter;
|
|
}
|
|
|
|
@Override
|
|
public DartUnit getUnitAfter() {
|
|
return nodeAfter;
|
|
}
|
|
}
|
|
}
|