diff options
author | Shawn O. Pearce <sop@google.com> | 2008-12-12 16:14:49 -0800 |
---|---|---|
committer | Shawn O. Pearce <sop@google.com> | 2008-12-12 16:14:49 -0800 |
commit | 583b353040c0568d545df2a8490535b03911925c (patch) | |
tree | d4af1ff111aa6de9693184984f443dd6097a4753 /webapp | |
parent | 403fec416ad264233d87c214765a6e89fdb34763 (diff) |
Add PatchContent to store the uncompressed content of a patch
This allows us to precompute patches from Git and write them
into the database for efficient access.
Signed-off-by: Shawn O. Pearce <sop@google.com>
Diffstat (limited to 'webapp')
4 files changed, 108 insertions, 0 deletions
diff --git a/webapp/src/com/google/gerrit/client/reviewdb/Patch.java b/webapp/src/com/google/gerrit/client/reviewdb/Patch.java index 7012f54c26..59406e09b1 100644 --- a/webapp/src/com/google/gerrit/client/reviewdb/Patch.java +++ b/webapp/src/com/google/gerrit/client/reviewdb/Patch.java @@ -115,6 +115,9 @@ public final class Patch { @Column protected char patchType; + @Column(notNull = false) + protected PatchContent.Key contentSha1; + /** Number of published comments on this patch. */ @Column protected int nbrComments; @@ -163,6 +166,14 @@ public final class Patch { return key.fileName; } + public PatchContent.Key getContent() { + return contentSha1; + } + + public void setContent(final PatchContent.Key k) { + contentSha1 = k; + } + public String getSourceFileName() { return sourceFileName; } diff --git a/webapp/src/com/google/gerrit/client/reviewdb/PatchContent.java b/webapp/src/com/google/gerrit/client/reviewdb/PatchContent.java new file mode 100644 index 0000000000..85e6604e67 --- /dev/null +++ b/webapp/src/com/google/gerrit/client/reviewdb/PatchContent.java @@ -0,0 +1,69 @@ +// Copyright 2008 Google Inc. +// +// Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0 +// +// 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.gerrit.client.reviewdb; + +import com.google.gwtorm.client.Column; + +/** Content of a single patch file */ +public final class PatchContent { + public static class Key implements + com.google.gwtorm.client.Key<com.google.gwtorm.client.Key<?>> { + @Column(length = 40) + protected String sha1; + + protected Key() { + } + + public Key(final String ps) { + sha1 = ps; + } + + @Override + public int hashCode() { + return sha1.hashCode(); + } + + @Override + public boolean equals(final Object o) { + return o instanceof Key && sha1.equals(((Key) o).sha1); + } + + public com.google.gwtorm.client.Key<?> getParentKey() { + return null; + } + } + + @Column(name = Column.NONE) + protected PatchContent.Key key; + + @Column(length = Integer.MAX_VALUE) + protected String content; + + protected PatchContent() { + } + + public PatchContent(final PatchContent.Key k, final String c) { + key = k; + content = c; + } + + public PatchContent.Key getKey() { + return key; + } + + public String getContent() { + return content; + } +} diff --git a/webapp/src/com/google/gerrit/client/reviewdb/PatchContentAccess.java b/webapp/src/com/google/gerrit/client/reviewdb/PatchContentAccess.java new file mode 100644 index 0000000000..4d6e21d305 --- /dev/null +++ b/webapp/src/com/google/gerrit/client/reviewdb/PatchContentAccess.java @@ -0,0 +1,25 @@ +// Copyright 2008 Google Inc. +// +// Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0 +// +// 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.gerrit.client.reviewdb; + +import com.google.gwtorm.client.Access; +import com.google.gwtorm.client.OrmException; +import com.google.gwtorm.client.PrimaryKey; + +public interface PatchContentAccess extends + Access<PatchContent, PatchContent.Key> { + @PrimaryKey("key") + PatchContent get(PatchContent.Key key) throws OrmException; +} diff --git a/webapp/src/com/google/gerrit/client/reviewdb/ReviewDb.java b/webapp/src/com/google/gerrit/client/reviewdb/ReviewDb.java index 1190b7a752..7338155a0f 100644 --- a/webapp/src/com/google/gerrit/client/reviewdb/ReviewDb.java +++ b/webapp/src/com/google/gerrit/client/reviewdb/ReviewDb.java @@ -84,6 +84,9 @@ public interface ReviewDb extends Schema { PatchAccess patches(); @Relation + PatchContentAccess patchContents(); + + @Relation PatchLineCommentAccess patchComments(); /** Create the next unique id for an {@link Account}. */ |