Skip to content

Commit

Permalink
Report errors when a package-prefix, class, or method mapping is spec…
Browse files Browse the repository at this point in the history
…ified multiple times.

	Change on 2015/06/22 by tball <tball@google.com>
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=96602141
  • Loading branch information
tomball committed Jun 25, 2015
1 parent a3d5d89 commit 1da5cdf
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 9 deletions.
19 changes: 15 additions & 4 deletions translator/src/main/java/com/google/devtools/j2objc/Options.java
Expand Up @@ -439,14 +439,25 @@ private void addMappingsProperties(Properties mappings) {
if (key.indexOf('(') > 0) {
// All method mappings have parentheses characters, classes don't.
String iosMethod = mappings.getProperty(key);
methodMappings.put(key, iosMethod);
addMapping(methodMappings, key, iosMethod, "method mapping");
} else {
String iosClass = mappings.getProperty(key);
classMappings.put(key, iosClass);
addMapping(classMappings, key, iosClass, "class mapping");
}
}
}

/**
* Adds a class, method or package-prefix property to its map, reporting an error
* if that mapping was previously specified.
*/
private static void addMapping(Map<String, String> map, String key, String value, String kind) {
String oldValue = map.put(key, value);
if (oldValue != null && !oldValue.equals(value)) {
ErrorUtil.error(kind + " redefined; was \"" + oldValue + ", now " + value);
}
}

/**
* Check that the memory management option wasn't previously set to a
* different value. If okay, then set the option.
Expand Down Expand Up @@ -638,8 +649,8 @@ public static Map<String, String> getPackagePrefixes() {
return instance.packagePrefixes;
}

public static String addPackagePrefix(String pkg, String prefix) {
return instance.packagePrefixes.put(pkg, prefix);
public static void addPackagePrefix(String pkg, String prefix) {
addMapping(instance.packagePrefixes, pkg, prefix, "package prefix");
}

public static String fileEncoding() {
Expand Down
Expand Up @@ -128,11 +128,7 @@ private void extractPackagePrefix(InputFile file, CompilationUnit unit) {
String key = unit.getPackage().getName().getFullyQualifiedName();
String val = (String) ((SingleMemberAnnotation) annotation).getValue()
.resolveConstantExpressionValue();
String previousVal = Options.addPackagePrefix(key, val);
if (previousVal != null && !previousVal.equals(val)) {
ErrorUtil.error(String.format("Package %s has name %s defined in file %s, but"
+ "is already named %s", key, val, file.getPath(), previousVal));
}
Options.addPackagePrefix(key, val);
}
}
}
Expand Down

0 comments on commit 1da5cdf

Please sign in to comment.