Skip to content

Commit

Permalink
fixed uri encoding bug
Browse files Browse the repository at this point in the history
  • Loading branch information
jctoledo committed Mar 16, 2015
1 parent 24e23a2 commit 7390071
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 12 deletions.
Expand Up @@ -37,6 +37,10 @@ public enum RnaKbUriPattern implements UriPattern, RnaKbNamespace {
this.pattern = pattern;
}

public boolean requiresEncoding(){
return true;
}

public String getPattern() {
return pattern;
}
Expand Down
Expand Up @@ -121,12 +121,12 @@ public enum Bio2RdfPdbUriPattern implements UriPattern, Bio2RdfPdbNamespace {
PUBLISHER_NAME(PUBLISHER.pattern + "/name"),
GENE_SOURCE_CELL_DEV_STAGE(GENE_SOURCE_CELL.pattern + "/developmentStage"),
GENE_SOURCE_ORGANISM_DEV_STAGE(GENE_SOURCE_ORGANISM.pattern + "/developmentStage"),
RESIDUE_FORMULA_WEIGH("{0}/formulaWeight"), // {0} => Residue URI
RESIDUE_FORMULA_WEIGH("{0}/formulaWeight", false), // {0} => Residue URI
RESIDUE_TYPE(DEFAULT_NAMESPACE_RESOURCE + "{0}"), // {0} => residue type name
RESIDUE_NUMBER_OF_ATOMS("{0}/numberOfAtoms"), // {0} => Residue URI
RESIDUE_NUMBER_OF_NON_HYDROGEN_ATOMS("{0}/numberOfNonHydrogenAtoms"), // {0}
RESIDUE_NUMBER_OF_ATOMS("{0}/numberOfAtoms", false), // {0} => Residue URI
RESIDUE_NUMBER_OF_NON_HYDROGEN_ATOMS("{0}/numberOfNonHydrogenAtoms", false), // {0}
// => Residue URI
RESIDUE_FORMULA("{0}/formula"), // {0} => Residue URI
RESIDUE_FORMULA("{0}/formula", false), // {0} => Residue URI

PDB_GRAPH("http://bio2rdf.org/graph/pdb:{0}"),
SECONDARY_STRUCTURE(DEFAULT_NAMESPACE_RESOURCE + "{0}/secondaryStructure_{1}"), // {0}
Expand Down Expand Up @@ -239,11 +239,21 @@ public enum Bio2RdfPdbUriPattern implements UriPattern, Bio2RdfPdbNamespace {
GO("http://bio2rdf.org/go:{0}");

private final String pattern;
private boolean encode;

private Bio2RdfPdbUriPattern(String pattern) {
this(pattern, true);
}
private Bio2RdfPdbUriPattern(String pattern, boolean encode){
this.pattern = pattern;
this.encode = encode;

}

@Override
public boolean requiresEncoding(){
return this.encode;
}
@Override
public String getPattern() {
return pattern;
}
Expand Down
Expand Up @@ -25,20 +25,27 @@
import java.text.MessageFormat;
import java.util.ArrayList;

import javax.management.RuntimeErrorException;

/**
* @author Alexander De Leon
*/
public class UriBuilder {

public String buildUri(UriPattern uriPatterns, String... args) {
ArrayList<String> encodedArgs = new ArrayList<String>(args.length);
for (String arg : args){
try{
encodedArgs.add(URLEncoder.encode(arg, "UTF-8"));
} catch(UnsupportedEncodingException e){
encodedArgs.add(arg);
if (uriPatterns.requiresEncoding()) {
ArrayList<String> encodedArgs = new ArrayList<String>(args.length);
for (String arg : args) {

try {
encodedArgs.add(URLEncoder.encode(arg, "UTF-8"));
} catch (UnsupportedEncodingException e) {
encodedArgs.add(arg);
}
}
return MessageFormat.format(uriPatterns.getPattern(),
encodedArgs.toArray(new Object[encodedArgs.size()]));
}
return MessageFormat.format(uriPatterns.getPattern(), encodedArgs.toArray(new Object[encodedArgs.size()]));
return MessageFormat.format(uriPatterns.getPattern(), (Object[]) args);
}
}
Expand Up @@ -26,5 +26,7 @@
public interface UriPattern {

String getPattern();

boolean requiresEncoding();

}

0 comments on commit 7390071

Please sign in to comment.