src/main/java/org/jboss/pressgang/ccms/model/utils/TopicUtilities.java
public static boolean recalculateMinHash(final Topic topic, final List<MinHashXOR> minHashXORs) {
        boolean retValue = false;

        final Set<MinHash> existingMinHashes = topic.getMinHashes();

        final Map<Integer, Integer> minHashes = getMinHashes(topic.getTopicXML(), minHashXORs);

        for (final Integer funcId : minHashes.keySet()) {

            boolean found = false;
            for (final MinHash minHash : existingMinHashes) {
                if (minHash.getMinHashFuncID().equals(funcId)) {
                    if (!minHash.getMinHash().equals(minHashes.get(funcId))) {
                        minHash.setMinHash(minHashes.get(funcId));
                        retValue = true;
                    }
                    found = true;
                    break;
                }
            }

            if (!found) {
                retValue = true;
                final MinHash minHash = new MinHash();
                minHash.setMinHashFuncID(funcId);
                minHash.setMinHash(minHashes.get(funcId));
                topic.addMinHash(minHash);
            }
        }

        return retValue;
    }
public static boolean recalculateMinHash(final Topic topic, final List<MinHashXOR> minHashXORs) {
        boolean retValue = false;

        final Set<MinHash> existingMinHashes = topic.getMinHashes();

        final Map<Integer, Integer> minHashes = getMinHashes(topic.getTopicXML(), minHashXORs);

        for (final Integer funcId : minHashes.keySet()) {

            boolean found = false;
            for (final MinHash minHash : existingMinHashes) {
                if (minHash.getMinHashFuncID().equals(funcId)) {
                    if (!minHash.getMinHash().equals(minHashes.get(funcId))) {
                        minHash.setMinHash(minHashes.get(funcId));
                        retValue = true;
                    }
                    found = true;
                    break;
                }
            }

            if (!found) {
                retValue = true;
                final MinHash minHash = new MinHash();
                minHash.setMinHashFuncID(funcId);
                minHash.setMinHash(minHashes.get(funcId));
                topic.addMinHash(minHash);
            }
        }

        return retValue;
    }
public static boolean recalculateMinHash ( final Topic topic , final List < MinHashXOR > minHashXORs ) { boolean retValue = false ; final Set < MinHash > existingMinHashes = topic . getMinHashes ( ) ; final Map < Integer , Integer > minHashes = getMinHashes ( topic . getTopicXML ( ) , minHashXORs ) ; for ( final Integer funcId : minHashes . keySet ( ) ) { boolean found = false ; for ( final MinHash minHash : existingMinHashes ) { if ( minHash . getMinHashFuncID ( ) . equals ( funcId ) ) { if ( ! minHash . getMinHash ( ) . equals ( minHashes . get ( funcId ) ) ) { minHash . setMinHash ( minHashes . get ( funcId ) ) ; retValue = true ; } found = true ; break ; } } if ( ! found ) { retValue = true ; final MinHash minHash = new MinHash ( ) ; minHash . setMinHashFuncID ( funcId ) ; minHash . setMinHash ( minHashes . get ( funcId ) ) ; topic . addMinHash ( minHash ) ; } } return retValue ; }
Recalculate the min hash signature for a topic.
@param topic The topic to generate a signature for
@param minHashXORs The list of XOR values to apply to the hash code
@return true if the minhashes were updated, false otherwise
Recalculate the min hash signature for a topic .