private boolean initFromURL(String suffix) { try { URL url = new URL(suffix); String path = url.getPath(); mySource = Source.URL; pdbId = URLIdentifier.guessPDBID( path.substring(path.lastIndexOf('/')+1) ); chainName = null; // Don't bother checking query params here return true; } catch(MalformedURLException e) { return false; } } private boolean initFromFile() {
/** * @return A SubstructureIdentifier without ranges (e.g. including all residues) */ @Override public SubstructureIdentifier toCanonical() { String pdbId = null; List<ResidueRange> ranges = Collections.emptyList(); try { Map<String, String> params = parseQuery(url); if(params.containsKey(PDBID_PARAM)) { pdbId = params.get(PDBID_PARAM); } if(params.containsKey(RESIDUES_PARAM)) { ranges = ResidueRange.parseMultiple(params.get(RESIDUES_PARAM)); } else if(params.containsKey(CHAINID_PARAM)) { ranges = Arrays.asList(new ResidueRange(params.get(CHAINID_PARAM),(ResidueNumber)null,(ResidueNumber)null)); } } catch (UnsupportedEncodingException e) { logger.error("Unable to decode URL "+url,e); } if(pdbId == null) { String path = url.getPath(); pdbId = guessPDBID(path.substring(path.lastIndexOf("/")+1)); } return new SubstructureIdentifier(pdbId, ranges); }