Changes from JWS2 branch merged, mostly javadoc
[jabaws.git] / datamodel / compbio / metadata / Limit.java
index 7c9b9f7..cbbb3a7 100644 (file)
@@ -35,7 +35,7 @@ import compbio.util.SysPrefs;
  * \r
  * @author pvtroshin\r
  * \r
- *         Date January 2010\r
+ * @version 1.0 January 2010\r
  * \r
  * @param <T>\r
  *            the type of an executable for which this limit is defined.\r
@@ -44,152 +44,152 @@ import compbio.util.SysPrefs;
 @XmlAccessorType(XmlAccessType.FIELD)\r
 public class Limit<T> {\r
 \r
-    private String preset;\r
-    private int seqNumber;\r
-    private int seqLength;\r
+       private String preset;\r
+       private int seqNumber;\r
+       private int seqLength;\r
 \r
-    @XmlAttribute\r
-    boolean isDefault;\r
+       @XmlAttribute\r
+       boolean isDefault;\r
 \r
-    private Limit() {\r
-       // JAXB default constructor\r
-    }\r
+       private Limit() {\r
+               // JAXB default constructor\r
+       }\r
 \r
-    public Limit(int seqNumber, int seqLength, String preset) {\r
-       if (seqNumber <= 0) {\r
-           throw new IllegalArgumentException(\r
-                   "seqNumber - a maximum number of sequences to align must be greater than 0. Value given:"\r
-                           + seqNumber);\r
+       public Limit(int seqNumber, int seqLength, String preset) {\r
+               if (seqNumber <= 0) {\r
+                       throw new IllegalArgumentException(\r
+                                       "seqNumber - a maximum number of sequences to align must be greater than 0. Value given:"\r
+                                                       + seqNumber);\r
+               }\r
+               if (seqLength <= 0) {\r
+                       throw new IllegalArgumentException(\r
+                                       "seqLength - an average sequence length must be greater than 0. Value given:"\r
+                                                       + seqLength);\r
+               }\r
+               this.seqNumber = seqNumber;\r
+               this.seqLength = seqLength;\r
+               this.preset = preset;\r
+               this.isDefault = false;\r
        }\r
-       if (seqLength <= 0) {\r
-           throw new IllegalArgumentException(\r
-                   "seqLength - an average sequence length must be greater than 0. Value given:"\r
-                           + seqLength);\r
+\r
+       public Limit(int seqNumber, int seqLength, String preset, boolean isDefault) {\r
+               this(seqNumber, seqNumber, preset);\r
+               this.isDefault = isDefault;\r
        }\r
-       this.seqNumber = seqNumber;\r
-       this.seqLength = seqLength;\r
-       this.preset = preset;\r
-       this.isDefault = false;\r
-    }\r
-\r
-    public Limit(int seqNumber, int seqLength, String preset, boolean isDefault) {\r
-       this(seqNumber, seqNumber, preset);\r
-       this.isDefault = isDefault;\r
-    }\r
-\r
-    public String getPreset() {\r
-       return preset;\r
-    }\r
-\r
-    public int getAvgSeqLength() {\r
-       return seqLength;\r
-    }\r
-\r
-    public int getSeqNumber() {\r
-       return seqNumber;\r
-    }\r
-\r
-    public boolean isDefault() {\r
-       return isDefault;\r
-    }\r
-\r
-    @Override\r
-    public int hashCode() {\r
-       final int prime = 31;\r
-       int result = 1;\r
-       result = prime * result + ((preset == null) ? 0 : preset.hashCode());\r
-       result = prime * result + seqLength;\r
-       result = prime * result + seqNumber;\r
-       return result;\r
-    }\r
-\r
-    @Override\r
-    public boolean equals(Object obj) {\r
-       if (this == obj)\r
-           return true;\r
-       if (obj == null)\r
-           return false;\r
-       if (getClass() != obj.getClass())\r
-           return false;\r
-       Limit other = (Limit) obj;\r
-       if (preset == null) {\r
-           if (other.preset != null)\r
-               return false;\r
-       } else if (!preset.equals(other.preset))\r
-           return false;\r
-       if (seqLength != other.seqLength)\r
-           return false;\r
-       if (seqNumber != other.seqNumber)\r
-           return false;\r
-       return true;\r
-    }\r
-\r
-    @Override\r
-    public String toString() {\r
-       String value = "";\r
-       if (isDefault) {\r
-           value = "Default Limit" + SysPrefs.newlinechar;\r
-       } else {\r
-           value = "Limit for Preset '" + preset + "'" + SysPrefs.newlinechar;\r
+\r
+       public String getPreset() {\r
+               return preset;\r
+       }\r
+\r
+       public int getAvgSeqLength() {\r
+               return seqLength;\r
        }\r
-       value += "Maximum sequence number=" + seqNumber + SysPrefs.newlinechar;\r
-       value += "Average sequence length=" + seqLength + SysPrefs.newlinechar;\r
-       value += SysPrefs.newlinechar;\r
-       return value;\r
-    }\r
-\r
-    long numberOfLetters() {\r
-       return this.seqNumber * this.seqLength;\r
-    }\r
-\r
-    /**\r
-     * Checks if the number of sequences or their average length in the dataset\r
-     * exceeds limits the values defined by this Limit\r
-     * \r
-     * @param data\r
-     * @return true if a limit is exceeded (what is the dataset is larger then\r
-     *         the limit), false otherwise.\r
-     */\r
-    public boolean isExceeded(List<FastaSequence> data) {\r
-       if (data == null) {\r
-           throw new NullPointerException(\r
-                   "List of fasta sequences is expected!");\r
+\r
+       public int getSeqNumber() {\r
+               return seqNumber;\r
        }\r
-       if (data.size() > this.seqNumber) {\r
-           return true;\r
+\r
+       public boolean isDefault() {\r
+               return isDefault;\r
+       }\r
+\r
+       @Override\r
+       public int hashCode() {\r
+               final int prime = 31;\r
+               int result = 1;\r
+               result = prime * result + ((preset == null) ? 0 : preset.hashCode());\r
+               result = prime * result + seqLength;\r
+               result = prime * result + seqNumber;\r
+               return result;\r
        }\r
-       if (this.seqLength != 0) {\r
-           if ((long) getAvgSeqLength() * data.size() > numberOfLetters()) {\r
+\r
+       @Override\r
+       public boolean equals(Object obj) {\r
+               if (this == obj)\r
+                       return true;\r
+               if (obj == null)\r
+                       return false;\r
+               if (getClass() != obj.getClass())\r
+                       return false;\r
+               Limit other = (Limit) obj;\r
+               if (preset == null) {\r
+                       if (other.preset != null)\r
+                               return false;\r
+               } else if (!preset.equals(other.preset))\r
+                       return false;\r
+               if (seqLength != other.seqLength)\r
+                       return false;\r
+               if (seqNumber != other.seqNumber)\r
+                       return false;\r
                return true;\r
-           }\r
        }\r
-       return false;\r
-    }\r
-\r
-    /**\r
-     * Calculates an average sequence length of the dataset\r
-     * \r
-     * @param data\r
-     * @return an average sequence length in the input dataset\r
-     */\r
-    public static int getAvgSequenceLength(List<FastaSequence> data) {\r
-       long length = 0;\r
-       for (FastaSequence seq : data) {\r
-           length += seq.getLength();\r
+\r
+       @Override\r
+       public String toString() {\r
+               String value = "";\r
+               if (isDefault) {\r
+                       value = "Default Limit" + SysPrefs.newlinechar;\r
+               } else {\r
+                       value = "Limit for Preset '" + preset + "'" + SysPrefs.newlinechar;\r
+               }\r
+               value += "Maximum sequence number=" + seqNumber + SysPrefs.newlinechar;\r
+               value += "Average sequence length=" + seqLength + SysPrefs.newlinechar;\r
+               value += SysPrefs.newlinechar;\r
+               return value;\r
        }\r
-       return (int) (length / data.size());\r
-    }\r
-\r
-    void validate() {\r
-       if (this.seqNumber < 1) {\r
-           throw new AssertionError(\r
-                   "Maximum number of sequences must be defined and be positive! Set value is: "\r
-                           + this.seqNumber);\r
+\r
+       long numberOfLetters() {\r
+               return this.seqNumber * this.seqLength;\r
        }\r
-       if (this.seqLength != 0 && this.seqLength < 1) {\r
-           throw new AssertionError(\r
-                   "Average sequence length must be positive! Set value is: "\r
-                           + this.seqLength);\r
+\r
+       /**\r
+        * Checks if the number of sequences or their average length in the dataset\r
+        * exceeds limits the values defined by this Limit\r
+        * \r
+        * @param data\r
+        * @return true if a limit is exceeded (what is the dataset is larger then\r
+        *         the limit), false otherwise.\r
+        */\r
+       public boolean isExceeded(List<FastaSequence> data) {\r
+               if (data == null) {\r
+                       throw new NullPointerException(\r
+                                       "List of fasta sequences is expected!");\r
+               }\r
+               if (data.size() > this.seqNumber) {\r
+                       return true;\r
+               }\r
+               if (this.seqLength != 0) {\r
+                       if ((long) getAvgSeqLength() * data.size() > numberOfLetters()) {\r
+                               return true;\r
+                       }\r
+               }\r
+               return false;\r
+       }\r
+\r
+       /**\r
+        * Calculates an average sequence length of the dataset\r
+        * \r
+        * @param data\r
+        * @return an average sequence length in the input dataset\r
+        */\r
+       public static int getAvgSequenceLength(List<FastaSequence> data) {\r
+               long length = 0;\r
+               for (FastaSequence seq : data) {\r
+                       length += seq.getLength();\r
+               }\r
+               return (int) (length / data.size());\r
+       }\r
+\r
+       void validate() {\r
+               if (this.seqNumber < 1) {\r
+                       throw new AssertionError(\r
+                                       "Maximum number of sequences must be defined and be positive! Set value is: "\r
+                                                       + this.seqNumber);\r
+               }\r
+               if (this.seqLength != 0 && this.seqLength < 1) {\r
+                       throw new AssertionError(\r
+                                       "Average sequence length must be positive! Set value is: "\r
+                                                       + this.seqLength);\r
+               }\r
        }\r
-    }\r
 }\r