Skip to content
This repository has been archived by the owner on Nov 10, 2023. It is now read-only.

Commit

Permalink
Small improvement in RuleKeyHasher return type
Browse files Browse the repository at this point in the history
Summary: It's better to return more specific type when returning `this`.

Test Plan: tests

Reviewed By: illicitonion

fbshipit-source-id: 4d80ec3
  • Loading branch information
plamenko authored and facebook-github-bot committed Mar 10, 2017
1 parent f6ce6d1 commit a1228fc
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 37 deletions.
40 changes: 20 additions & 20 deletions src/com/facebook/buck/rules/keys/GuavaRuleKeyHasher.java
Original file line number Diff line number Diff line change
Expand Up @@ -71,40 +71,40 @@ public GuavaRuleKeyHasher(Hasher hasher) {
this.hasher = hasher;
}

private RuleKeyHasher<HashCode> putBytes(byte type, byte[] bytes) {
private GuavaRuleKeyHasher putBytes(byte type, byte[] bytes) {
hasher.putBytes(bytes);
hasher.putInt(bytes.length);
hasher.putByte(type);
return this;
}

private RuleKeyHasher<HashCode> putStringified(byte type, String val) {
private GuavaRuleKeyHasher putStringified(byte type, String val) {
return putBytes(type, val.getBytes(Charsets.UTF_8));
}

private RuleKeyHasher<HashCode> putBuildTarget(byte type, BuildTarget target) {
private GuavaRuleKeyHasher putBuildTarget(byte type, BuildTarget target) {
return putStringified(type, target.getFullyQualifiedName());
}

@Override
public RuleKeyHasher<HashCode> putKey(String key) {
public GuavaRuleKeyHasher putKey(String key) {
return this.putStringified(TYPE_KEY, key);
}

@Override
public RuleKeyHasher<HashCode> putNull() {
public GuavaRuleKeyHasher putNull() {
hasher.putByte(TYPE_NULL);
return this;
}

@Override
public RuleKeyHasher<HashCode> putBoolean(boolean val) {
public GuavaRuleKeyHasher putBoolean(boolean val) {
hasher.putByte(val ? TYPE_TRUE : TYPE_FALSE);
return this;
}

@Override
public RuleKeyHasher<HashCode> putNumber(Number val) {
public GuavaRuleKeyHasher putNumber(Number val) {
if (val instanceof Integer) { // most common, so test first
hasher.putInt((Integer) val);
hasher.putByte(TYPE_INTEGER);
Expand All @@ -130,63 +130,63 @@ public RuleKeyHasher<HashCode> putNumber(Number val) {
}

@Override
public RuleKeyHasher<HashCode> putString(String val) {
public GuavaRuleKeyHasher putString(String val) {
return this.putStringified(TYPE_STRING, val);
}

@Override
public RuleKeyHasher<HashCode> putBytes(byte[] bytes) {
public GuavaRuleKeyHasher putBytes(byte[] bytes) {
return putBytes(TYPE_BYTE_ARRAY, bytes);
}

@Override
public RuleKeyHasher<HashCode> putPattern(Pattern pattern) {
public GuavaRuleKeyHasher putPattern(Pattern pattern) {
return this.putStringified(TYPE_PATTERN, pattern.toString());
}

@Override
public RuleKeyHasher<HashCode> putSha1(Sha1HashCode sha1) {
public GuavaRuleKeyHasher putSha1(Sha1HashCode sha1) {
sha1.update(hasher);
hasher.putByte(TYPE_SHA1);
return this;
}

@Override
public RuleKeyHasher<HashCode> putPath(Path path, HashCode hash) {
public GuavaRuleKeyHasher putPath(Path path, HashCode hash) {
this.putStringified(TYPE_PATH, path.toString());
this.putBytes(TYPE_PATH, hash.asBytes());
return this;
}

@Override
public RuleKeyHasher<HashCode> putArchiveMemberPath(ArchiveMemberPath path, HashCode hash) {
public GuavaRuleKeyHasher putArchiveMemberPath(ArchiveMemberPath path, HashCode hash) {
this.putStringified(TYPE_ARCHIVE_MEMBER_PATH, path.toString());
this.putBytes(TYPE_ARCHIVE_MEMBER_PATH, hash.asBytes());
return this;
}

@Override
public RuleKeyHasher<HashCode> putNonHashingPath(String path) {
public GuavaRuleKeyHasher putNonHashingPath(String path) {
return this.putStringified(TYPE_NON_HASHING_PATH, path);
}

@Override
public RuleKeyHasher<HashCode> putSourceRoot(SourceRoot sourceRoot) {
public GuavaRuleKeyHasher putSourceRoot(SourceRoot sourceRoot) {
return this.putStringified(TYPE_SOURCE_ROOT, sourceRoot.getName());
}

@Override
public RuleKeyHasher<HashCode> putRuleKey(RuleKey ruleKey) {
public GuavaRuleKeyHasher putRuleKey(RuleKey ruleKey) {
return this.putBytes(TYPE_RULE_KEY, ruleKey.getHashCode().asBytes());
}

@Override
public RuleKeyHasher<HashCode> putBuildRuleType(BuildRuleType buildRuleType) {
public GuavaRuleKeyHasher putBuildRuleType(BuildRuleType buildRuleType) {
return this.putStringified(TYPE_RULE_TYPE, buildRuleType.toString());
}

@Override
public RuleKeyHasher<HashCode> putBuildTarget(BuildTarget buildTarget) {
public GuavaRuleKeyHasher putBuildTarget(BuildTarget buildTarget) {
return this.putStringified(TYPE_TARGET, buildTarget.getFullyQualifiedName());
}

Expand All @@ -207,7 +207,7 @@ public RuleKeyHasher<HashCode> putBuildTargetSourcePath(
}

@Override
public RuleKeyHasher<HashCode> putContainer(Container container, int length) {
public GuavaRuleKeyHasher putContainer(Container container, int length) {
switch (container) {
case LIST:
hasher.putByte((byte) '[');
Expand All @@ -224,7 +224,7 @@ public RuleKeyHasher<HashCode> putContainer(Container container, int length) {
}

@Override
public RuleKeyHasher<HashCode> putWrapper(Wrapper wrapper) {
public GuavaRuleKeyHasher putWrapper(Wrapper wrapper) {
switch (wrapper) {
case SUPPLIER:
hasher.putByte((byte) 'S');
Expand Down
34 changes: 17 additions & 17 deletions src/com/facebook/buck/rules/keys/StringRuleKeyHasher.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,91 +39,91 @@ public class StringRuleKeyHasher implements RuleKeyHasher<String> {
private final List<String> parts = new ArrayList<>();

@Override
public RuleKeyHasher<String> putKey(String key) {
public StringRuleKeyHasher putKey(String key) {
parts.add(String.format("key(%s)", key));
return this;
}

@Override
public RuleKeyHasher<String> putNull() {
public StringRuleKeyHasher putNull() {
parts.add(String.format("null()"));
return this;
}

@Override
public RuleKeyHasher<String> putBoolean(boolean val) {
public StringRuleKeyHasher putBoolean(boolean val) {
parts.add(String.format("boolean(%s)", val ? "true" : "false"));
return this;
}

@Override
public RuleKeyHasher<String> putNumber(Number val) {
public StringRuleKeyHasher putNumber(Number val) {
parts.add(String.format("number(%s)", val));
return this;
}

@Override
public RuleKeyHasher<String> putString(String val) {
public StringRuleKeyHasher putString(String val) {
parts.add(String.format("string(\"%s\")", val));
return this;
}

@Override
public RuleKeyHasher<String> putPattern(Pattern pattern) {
public StringRuleKeyHasher putPattern(Pattern pattern) {
parts.add(String.format("pattern(%s)", pattern));
return this;
}

@Override
public RuleKeyHasher<String> putBytes(byte[] bytes) {
public StringRuleKeyHasher putBytes(byte[] bytes) {
parts.add(String.format("byteArray(length=%s)", bytes.length));
return this;
}

@Override
public RuleKeyHasher<String> putSha1(Sha1HashCode sha1) {
public StringRuleKeyHasher putSha1(Sha1HashCode sha1) {
parts.add(String.format("sha1(%s)", sha1.toString()));
return this;
}

@Override
public RuleKeyHasher<String> putArchiveMemberPath(ArchiveMemberPath path, HashCode hash) {
public StringRuleKeyHasher putArchiveMemberPath(ArchiveMemberPath path, HashCode hash) {
parts.add(String.format("archiveMember(%s:%s)", path.toString(), hash));
return this;
}

@Override
public RuleKeyHasher<String> putPath(Path path, HashCode hash) {
public StringRuleKeyHasher putPath(Path path, HashCode hash) {
parts.add(String.format("path(%s:%s)", path, hash));
return this;
}

@Override
public RuleKeyHasher<String> putNonHashingPath(String path) {
public StringRuleKeyHasher putNonHashingPath(String path) {
parts.add(String.format("path(%s)", path));
return this;
}

@Override
public RuleKeyHasher<String> putSourceRoot(SourceRoot sourceRoot) {
public StringRuleKeyHasher putSourceRoot(SourceRoot sourceRoot) {
parts.add(String.format("sourceRoot(%s)", sourceRoot.getName()));
return this;
}

@Override
public RuleKeyHasher<String> putRuleKey(RuleKey ruleKey) {
public StringRuleKeyHasher putRuleKey(RuleKey ruleKey) {
parts.add(String.format("ruleKey(sha1=%s)", ruleKey.toString()));
return this;
}

@Override
public RuleKeyHasher<String> putBuildRuleType(BuildRuleType buildRuleType) {
public StringRuleKeyHasher putBuildRuleType(BuildRuleType buildRuleType) {
parts.add(String.format("ruleType(%s)", buildRuleType.getName()));
return this;
}

@Override
public RuleKeyHasher<String> putBuildTarget(BuildTarget buildTarget) {
public StringRuleKeyHasher putBuildTarget(BuildTarget buildTarget) {
parts.add(String.format("target(%s)", buildTarget.getFullyQualifiedName()));
return this;
}
Expand All @@ -135,13 +135,13 @@ public RuleKeyHasher<String> putBuildTargetSourcePath(BuildTargetSourcePath<?> t
}

@Override
public RuleKeyHasher<String> putContainer(Container container, int length) {
public StringRuleKeyHasher putContainer(Container container, int length) {
parts.add(String.format("container(%s,len=%s)", container, length));
return this;
}

@Override
public RuleKeyHasher<String> putWrapper(Wrapper wrapper) {
public StringRuleKeyHasher putWrapper(Wrapper wrapper) {
parts.add(String.format("wrapper(%s)", wrapper));
return this;
}
Expand Down

0 comments on commit a1228fc

Please sign in to comment.