package jetbrains.mps.smodel.persistence.def.v8;
/*Generated by MPS */
import jetbrains.mps.smodel.persistence.def.IModelPersistence;
import jetbrains.mps.persistence.xml.XMLPersistence;
import jetbrains.mps.smodel.persistence.def.IModelWriter;
import org.jetbrains.annotations.Nullable;
import jetbrains.mps.smodel.SModelHeader;
import jetbrains.mps.smodel.persistence.def.IHashProvider;
import jetbrains.mps.util.xml.XMLSAXHandler;
import jetbrains.mps.smodel.loading.ModelLoadResult;
import jetbrains.mps.smodel.loading.ModelLoadingState;
import java.util.List;
import jetbrains.mps.smodel.persistence.lines.LineContent;
import org.jetbrains.annotations.NotNull;
import jetbrains.mps.persistence.IndexAwareModelFactory;
import java.io.Reader;
import java.io.IOException;
import jetbrains.mps.smodel.persistence.def.v9.Indexer9;
public class ModelPersistence8 implements IModelPersistence, XMLPersistence {
public static final String ROOT_NODE = "root";
@Override
public int getVersion() {
return 8;
}
@Override
public IModelWriter getModelWriter(@Nullable SModelHeader header) {
return null;
}
@Override
public IHashProvider getHashProvider() {
return new HashProvider8();
}
@Override
public XMLSAXHandler<ModelLoadResult> getModelReaderHandler(ModelLoadingState state, SModelHeader header) {
return new ModelReader8Handler(state == ModelLoadingState.INTERFACE_LOADED, state == ModelLoadingState.NO_IMPLEMENTATION, header);
}
@Override
public XMLSAXHandler<List<LineContent>> getLineToContentMapReaderHandler() {
return new LineToContentMapReader8Handler();
}
@Nullable
@Override
public XMLPersistence.Indexer getIndexSupport(@NotNull final IndexAwareModelFactory.Callback callback) {
return new XMLPersistence.Indexer() {
@Override
public void index(@NotNull Reader input) throws IOException {
PersistenceUtil.index(Indexer9.getChars(input), callback);
}
};
}
}