Package nimrod.java

Source Code of nimrod.java.TagsPredicate

package nimrod.java;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.dataformat.smile.SmileFactory;
import org.hsqldb.lib.HashSet;

public class TagsPredicate {

    private static final SmileFactory FACTORY = new SmileFactory();

    public static boolean contains(byte[] metric, String tags) throws Exception {
        if (!tags.isEmpty()) {
            JsonParser parser = FACTORY.createJsonParser(metric);
            try {
                HashSet candidates = new HashSet();
                boolean contains = false;
                candidates.addAll(tags.split(","));
                while (parser.nextToken() != null) {
                    if (parser.getCurrentName() != null
                            && parser.getCurrentName().equals("tags")
                            && parser.getCurrentToken().equals(JsonToken.FIELD_NAME)
                            && parser.nextToken().equals(JsonToken.START_ARRAY)) {
                        HashSet actual = new HashSet();
                        while (!parser.nextToken().equals(JsonToken.END_ARRAY)) {
                            actual.add(parser.getText());
                        }
                        contains = actual.containsAll(candidates);
                        break;
                    }
                }
                return contains;
            } finally {
                parser.close();
            }
        } else {
            return true;
        }
    }
}
TOP

Related Classes of nimrod.java.TagsPredicate

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.