1 19 package org.netbeans.modules.javacore.parser; 20 21 25 class OrderedArrayMeasure implements Measure { 26 private final Measure measure; 27 28 OrderedArrayMeasure(Measure elementsMeasure) { 29 measure = elementsMeasure; 30 } 31 32 public int getDistance(Object first, Object second) { 33 Object [] array1 = (Object []) first; 34 Object [] array2 = (Object []) second; 35 int minSize = Math.min(array1.length, array2.length); 36 int difference = Math.abs(array1.length-array2.length); 37 int result = 0; 38 39 if (minSize==0) { 40 if (difference!=0) 41 result=INFINITE_DISTANCE; 42 return result; 43 } 44 for (int i = 0; i < minSize; i++) { 45 result += measure.getDistance(array1[i], array2[i]); 46 } 47 result += difference * INFINITE_DISTANCE; 48 result /= (minSize+difference); 49 return result > INFINITE_DISTANCE ? INFINITE_DISTANCE : result; 50 } 51 } 52 | Popular Tags |