// 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 org.jetbrains.kotlin.js.backend.ast;
import org.jetbrains.annotations.
Nullable;
import java.util.
List;
/**
* The context in which a JsNode visitation occurs. This represents the set of
* possible operations a JsVisitor subclass can perform on the currently visited
* node.
*/
public abstract class
JsContext<T extends
JsNode> {
public <R extends T> void
addPrevious(R
node) {
throw new
UnsupportedOperationException();
}
public <R extends T> void
addPrevious(
List<R>
nodes) {
for (R
node :
nodes) {
addPrevious(
node);
}
}
public <R extends T> void
addNext(R
node) {
throw new
UnsupportedOperationException();
}
public abstract void
removeMe();
public abstract <R extends T> void
replaceMe(R
node);
@
Nullable
public abstract T
getCurrentNode();
}