X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FModellerDescription.java;h=a7a1efac04870066a37975a6b7cda801b7df17ec;hb=17e77c3f2949a0729322b4a8d907f3f34b6a9914;hp=21b2aafe05c0f685003255425cfd7f2214e89ab5;hpb=a45774ee31d9f35d4eff46d54d7deab719afb092;p=jalview.git diff --git a/src/jalview/io/ModellerDescription.java b/src/jalview/io/ModellerDescription.java index 21b2aaf..a7a1efa 100755 --- a/src/jalview/io/ModellerDescription.java +++ b/src/jalview/io/ModellerDescription.java @@ -1,23 +1,26 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) - * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9) + * Copyright (C) 2015 The Jalview Authors * * This file is part of Jalview. * * Jalview is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - * + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * * Jalview is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along with Jalview. If not, see . + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.io; -import jalview.datamodel.*; +import jalview.datamodel.SequenceI; public class ModellerDescription { @@ -26,13 +29,12 @@ public class ModellerDescription * single line, and sequence start/end and other properties. See PIRFile IO * for its use. */ - final String[] seqTypes = - { "sequence", "structure", "structureX", "structureN" }; + final String[] seqTypes = { "sequence", "structure", "structureX", + "structureN" }; - final String[] Fields = - { "objectType", "objectId", "startField", "startCode", "endField", - "endCode", "description1", "description2", "resolutionField", - "tailField" }; + final String[] Fields = { "objectType", "objectId", "startField", + "startCode", "endField", "endCode", "description1", "description2", + "resolutionField", "tailField" }; final int TYPE = 0; @@ -57,11 +59,9 @@ public class ModellerDescription /** * 0 is free text or empty 1 is something that parses to an integer, or \@ */ - final int Types[] = - { 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 }; + final int Types[] = { 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 }; - final char Padding[] = - { ' ', ' ', ' ', '.', ' ', '.', '.', '.', '.', '.' }; + final char Padding[] = { ' ', ' ', ' ', '.', ' ', '.', '.', '.', '.', '.' }; java.util.Hashtable fields = new java.util.Hashtable(); @@ -119,8 +119,9 @@ public class ModellerDescription private java.util.Hashtable parseDescription(String desc) { java.util.Hashtable fields = new java.util.Hashtable(); - java.util.StringTokenizer st = new java.util.StringTokenizer(desc, ":",true); - + java.util.StringTokenizer st = new java.util.StringTokenizer(desc, ":", + true); + String field; int type = -1; if (st.countTokens() > 0) @@ -148,28 +149,31 @@ public class ModellerDescription { if (!field.equals(":")) { - // validate residue field value - if (Types[i] == 1) - { - resCode val = validResidueCode(field); - if (val != null) + // validate residue field value + if (Types[i] == 1) { - fields.put(new String(Fields[i] + "num"), val); + resCode val = validResidueCode(field); + if (val != null) + { + fields.put(new String(Fields[i] + "num"), val); + } + else + { + // jalview.bin.Cache.log.debug( + // "Ignoring non-Modeller description: invalid integer-like + // field '" + field + "'"); + type = -1; /* invalid field! - throw the FieldSet away */ + } + ; } - else + fields.put(Fields[i++], field); + if (st.hasMoreTokens()) { - // jalview.bin.Cache.log.debug( - // "Ignoring non-Modeller description: invalid integer-like - // field '" + field + "'"); - type = -1; /* invalid field! - throw the FieldSet away */ + st.nextToken(); // skip token sep. } - ; } - fields.put(Fields[i++], field); - if (st.hasMoreTokens()) { - st.nextToken(); // skip token sep. - } - } else { + else + { i++; } } @@ -180,7 +184,7 @@ public class ModellerDescription while (st.hasMoreTokens()) { String tl = st.nextToken(":"); - field += tl.equals(":") ? tl : (":" + tl); + field += tl.equals(":") ? tl : (":" + tl); } fields.put(Fields[TAIL], field); } @@ -240,13 +244,15 @@ public class ModellerDescription { // Set start and end before we update the type (in the case of a // synthesized field set) - if (getStartCode()==null || (getStartNum() != seq.getStart() && getStartCode().val != null)) + if (getStartCode() == null + || (getStartNum() != seq.getStart() && getStartCode().val != null)) { // unset or user updated sequence start position setStartCode(seq.getStart()); } - if (getEndCode()==null || (getEndNum() != seq.getEnd() && getStartCode()!=null && getStartCode().val != null)) + if (getEndCode() == null + || (getEndNum() != seq.getEnd() && getStartCode() != null && getStartCode().val != null)) { setEndCode(seq.getEnd()); } @@ -349,7 +355,7 @@ public class ModellerDescription { int start = 0; resCode val = getStartCode(); - if (val!=null && val.val != null) + if (val != null && val.val != null) { return val.val.intValue(); } @@ -378,7 +384,7 @@ public class ModellerDescription { int end = 0; resCode val = getEndCode(); - if (val!=null && val.val != null) + if (val != null && val.val != null) { return val.val.intValue(); } @@ -396,8 +402,8 @@ public class ModellerDescription { if (isModellerFieldset()) { - resCode rc=getStartCode(); - if (rc!=null && rc.val != null) + resCode rc = getStartCode(); + if (rc != null && rc.val != null) { newSeq.setStart(getStartNum()); } @@ -405,8 +411,8 @@ public class ModellerDescription { newSeq.setStart(1); } - rc=getEndCode(); - if (rc!=null && rc.val != null) + rc = getEndCode(); + if (rc != null && rc.val != null) { newSeq.setEnd(getEndNum()); }