Files
sdk/compiler/java/com/google/dart/compiler/SourceDelta.java
T
dgrove@google.com 977977e6ea Initial checkin.
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-05 05:00:35 +00:00

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;
}
}
}