Mercurial > hg4j
view src/com/tmate/hgkit/ll/HgRepository.java @ 2:08db726a0fb7
Shaping out low-level Hg structures
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Sun, 19 Dec 2010 05:41:31 +0100 |
parents | a3576694a4d1 |
children | 24bb4f365164 |
line wrap: on
line source
/** * Copyright (c) 2010 Artem Tikhomirov */ package com.tmate.hgkit.ll; /** * @author artem */ public abstract class HgRepository { // temp aux marker method public static IllegalStateException notImplemented() { return new IllegalStateException("Not implemented"); } private Changelog changelog; private HgManifest manifest; private boolean isInvalid = true; public boolean isInvalid() { return this.isInvalid; } protected void setInvalid(boolean invalid) { isInvalid = invalid; } public void log() { Revlog clog = getChangelog(); assert clog != null; // TODO get data to the client } public final Changelog getChangelog() { if (this.changelog == null) { // might want delegate to protected createChangelog() some day this.changelog = new Changelog(this); // TODO init } return this.changelog; } public final HgManifest getManifest() { if (this.manifest == null) { this.manifest = new HgManifest(this); } return this.manifest; } public final Object/*HgDirstate*/ getDirstate() { throw notImplemented(); } public abstract HgDataFile getFileNode(String path); public abstract String getLocation(); /** * Perhaps, should be separate interface, like ContentLookup */ public abstract RevlogStream resolve(String string); }