/*
* Copyright (c) 2014, the Dart project authors.
*
* Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.eclipse.org/legal/epl-v10.html
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.dart.engine.internal.index.file;
import com.google.dart.engine.context.AnalysisContext;
/**
* A manager for {@link IndexNode}s.
*
* @coverage dart.engine.index
*/
public interface NodeManager {
/**
* Returns number of locations in all nodes.
*/
public int getLocationCount();
/**
* Removes all nodes.
*/
void clear();
/**
* Returns the shared {@link ContextCodec} instance.
*/
ContextCodec getContextCodec();
/**
* Returns the shared {@link ElementCodec} instance.
*/
ElementCodec getElementCodec();
/**
* Returns the {@link IndexNode} with the given name, {@code null} if not found.
*/
IndexNode getNode(String name);
/**
* Returns the shared {@link StringCodec} instance.
*/
StringCodec getStringCodec();
/**
* Returns a new {@link IndexNode}.
*/
IndexNode newNode(AnalysisContext context);
/**
* Associates the given {@link IndexNode} with the given name.
*/
void putNode(String name, IndexNode node);
/**
* Removes the {@link IndexNode} with the given name.
*/
void removeNode(String name);
}