===================================================================== Found a 14 line (144 tokens) duplication in the following files: Starting at line 1116 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/util/PrintfFormat.java Starting at line 1334 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/util/PrintfFormat.java if (ePos != -1) { int ie = ePos + 1; expon = 0; if (sx.charAt(ie) == '-') { for (++ie; ie < sx.length(); ie++) if (sx.charAt(ie) != '0') break; if (ie < sx.length()) expon = -Integer.parseInt(sx.substring(ie)); } else { if (sx.charAt(ie) == '+') ++ie; for (; ie < sx.length(); ie++) if (sx.charAt(ie) != '0') break; if (ie < sx.length()) expon = Integer.parseInt(sx.substring(ie)); } } ===================================================================== Found a 5 line (129 tokens) duplication in the following files: Starting at line 1461 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/Thing.java Starting at line 1465 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/Thing.java } else if (directionY == 1 || directionY == -1) { if(!map.isBlocked(x + directionX, y - 1) || isDoorVisible(x + directionX, y - 1)) exits.add(new Point(x + directionX, y - 1)); if(!map.isBlocked(x + directionX, y) || isDoorVisible(x + directionX, y)) exits.add(new Point(x + directionX, y)); if(!map.isBlocked(x + directionX, y + 1) || isDoorVisible(x + directionX, y + 1)) exits.add(new Point(x + directionX, y + 1)); } ===================================================================== Found a 30 line (128 tokens) duplication in the following files: Starting at line 45 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/ListScreen.java Starting at line 74 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/DetailedListScreen.java } int kv = c - 'a'; if ((kv >= 0) && (kv < pagesize)) { kv = kv + page * pagesize; if ((kv >= 0) && (kv < strings.length)) return strings[kv]; } } } return null; } public void activate() { // questapp.setKeyHandler(keyhandler); } private static String[] getStringArray(Collection c) { String[] ss=new String[c.size()]; Iterator it=c.iterator(); int i=0; while (it.hasNext()) { ss[i++]=(String)it.next(); } return ss; } public DetailedListScreen(String s, Collection c1 , Collection c2) { ===================================================================== Found a 15 line (110 tokens) duplication in the following files: Starting at line 1666 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/util/PrintfFormat.java Starting at line 1788 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/util/PrintfFormat.java char[] ca4, ca5; if (Double.isInfinite(x)) { if (x == Double.POSITIVE_INFINITY) { if (leadingSign) ca4 = "+Inf".toCharArray(); else if (leadingSpace) ca4 = " Inf".toCharArray(); else ca4 = "Inf".toCharArray(); } else ca4 = "-Inf".toCharArray(); } else if (Double.isNaN(x)) { if (leadingSign) ca4 = "+NaN".toCharArray(); else if (leadingSpace) ca4 = " NaN".toCharArray(); else ca4 = "NaN".toCharArray(); } else { ===================================================================== Found a 8 line (107 tokens) duplication in the following files: Starting at line 572 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/Dungeon.java Starting at line 318 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/DeepForest.java int cx = (x1 + x2) / 2; int cy = (y1 + y2) / 2; for (int lx = x1; lx <= (x1 + w * 2); lx++) for (int ly = y1; ly < (y1 + h * 2); ly++) { if ((((lx - cx) * (lx - cx) * 100) / (w * w) + ((ly - cy) * (ly - cy) * 100) / (h * h)) < 100) { ===================================================================== Found a 30 line (107 tokens) duplication in the following files: Starting at line 589 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/util/PrintfFormat.java Starting at line 614 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/util/PrintfFormat.java Starting at line 640 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/util/PrintfFormat.java Starting at line 665 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/util/PrintfFormat.java public String sprintf(String x) throws IllegalArgumentException { Enumeration e = vFmt.elements(); ConversionSpecification cs = null; char c = 0; StringBuffer sb = new StringBuffer(); while (e.hasMoreElements()) { cs = (ConversionSpecification) e.nextElement(); c = cs.getConversionCharacter(); if (c == '\0') sb.append(cs.getLiteral()); else if (c == '%') sb.append("%"); else sb.append(cs.internalsprintf(x)); } return sb.toString(); } /** * Format an Object. Convert wrapper types to their primitive equivalents * and call the appropriate internal formatting method. Convert Strings * using an internal formatting method for Strings. Otherwise use the * default formatter (use toString). * * @param x * the Object to format. * @return the formatted String. * @exception IllegalArgumentException * if the conversion character is inappropriate for * formatting an unwrapped value. */ public String sprintf(Object x) throws IllegalArgumentException { ===================================================================== Found a 20 line (106 tokens) duplication in the following files: Starting at line 311 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/Tile.java Starting at line 341 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/Tile.java if (issolid[tile]) { if (b.getFlag("IsEthereal")) return true; if (b.getFlag("IsFlying")) { if (t.getFlag("IsJumpable")) return true; } return false; } if (b.getFlag("IsFlying")) return true; // special tile cases switch (tile) { case Tile.SEA: Thing[] bs=b.getFlaggedContents("IsBoat"); return (bs!=null)&&(bs.length>0); case Tile.MOUNTAINS: return b.getFlag(Skill.CLIMBING); } return false; ===================================================================== Found a 32 line (104 tokens) duplication in the following files: Starting at line 1444 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/util/PrintfFormat.java Starting at line 1477 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/util/PrintfFormat.java switch (expon % 10) { case 0: ca2[i] = '0'; break; case 1: ca2[i] = '1'; break; case 2: ca2[i] = '2'; break; case 3: ca2[i] = '3'; break; case 4: ca2[i] = '4'; break; case 5: ca2[i] = '5'; break; case 6: ca2[i] = '6'; break; case 7: ca2[i] = '7'; break; case 8: ca2[i] = '8'; break; case 9: ca2[i] = '9'; break; } ===================================================================== Found a 9 line (102 tokens) duplication in the following files: Starting at line 362 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/test/Thing_TC.java Starting at line 390 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/test/Thing_TC.java Thing[] moneyArray = person.getFlaggedContents("IsMoney"); assertEquals(3,moneyArray.length); assertEquals("copper coin",moneyArray[0].getString("Name")); assertEquals(21,moneyArray[0].getStat("Number")); assertEquals("gold coin",moneyArray[1].getString("Name")); assertEquals(2,moneyArray[1].getStat("Number")); assertEquals("silver coin",moneyArray[2].getString("Name")); assertEquals(6,moneyArray[2].getStat("Number")); Thing[] foodArray = person.getFlaggedContents("IsFood"); ===================================================================== Found a 4 line (102 tokens) duplication in the following files: Starting at line 327 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/util/LibMetaDataHandler.java Starting at line 615 of /home/tom/pmd/pmd-web/src/tyrant/mikera/tyrant/util/LibMetaDataHandler.java metaData.add("IsSpellBook", new Integer(1), null, MetaDataEntry.FIX_VALUE, MetaDataEntry.MANDATORY_PROPERTY); metaData.add("IsReadable", new Integer(1), new Integer[]{new Integer(0), new Integer(1)}, MetaDataEntry.CERTAIN_VALUES, MetaDataEntry.MANDATORY_PROPERTY); metaData.add("IsMagicItem", new Integer(1), new Integer[]{new Integer(0), new Integer(1)}, MetaDataEntry.CERTAIN_VALUES, MetaDataEntry.MANDATORY_PROPERTY); metaData.add("Image", new Integer(285), null, MetaDataEntry.POSITIVE_VALUE, MetaDataEntry.MANDATORY_PROPERTY);