From: <ni...@us...> - 2006-12-06 20:41:13
|
Revision: 6405 http://svn.sourceforge.net/jmol/?rev=6405&view=rev Author: nicove Date: 2006-12-06 12:41:07 -0800 (Wed, 06 Dec 2006) Log Message: ----------- Restricting detection of Folding At Home files Modified Paths: -------------- branches/v11_0/Jmol/src/org/jmol/adapter/smarter/Resolver.java Modified: branches/v11_0/Jmol/src/org/jmol/adapter/smarter/Resolver.java =================================================================== --- branches/v11_0/Jmol/src/org/jmol/adapter/smarter/Resolver.java 2006-12-06 20:27:32 UTC (rev 6404) +++ branches/v11_0/Jmol/src/org/jmol/adapter/smarter/Resolver.java 2006-12-06 20:41:07 UTC (rev 6405) @@ -203,16 +203,46 @@ return false; } + /** + * @param lines First lines of the files. + * @return Indicates if the file may be a Folding@Home file. + */ static boolean checkFoldingXyz(String[] lines) { + // Checking first line: <number of atoms> <protein name> + if ((lines == null) || (lines.length < 2) || (lines[0] == null)) { + return false; + } + StringTokenizer tokens = new StringTokenizer(lines[0].trim(), " \t"); + if ((tokens == null) || (tokens.countTokens() < 2)) { + return false; + } try { - StringTokenizer tokens = new StringTokenizer(lines[0].trim(), " \t"); - if ((tokens != null) && (tokens.countTokens() >= 2)) { - Integer.parseInt(tokens.nextToken().trim()); - return true; + Integer.parseInt(tokens.nextToken().trim()); + } catch (NumberFormatException nfe) { + return false; + } + + // Checking second line: <atom number> ... + String secondLine = lines[1]; + if ((secondLine == null) || (secondLine.trim().length() == 0)) { + if (lines.length > 2) { + secondLine = lines[2]; } + } + if ((secondLine == null) || (secondLine.trim().length() == 0)) { + return false; + } + tokens = new StringTokenizer(secondLine.trim(), " \t"); + if ((tokens == null) || (tokens.countTokens() < 1)) { + return false; + } + try { + Integer.parseInt(tokens.nextToken().trim()); } catch (NumberFormatException nfe) { + return false; } - return false; + + return true; } static boolean checkCube(String[] lines) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |