/*
* Copyright Siemens AG, 2014-2015. Part of the SW360 Portal Project.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.eclipse.sw360.datahandler.common;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
import org.eclipse.sw360.datahandler.thrift.SW360Exception;
import java.util.HashSet;
import java.util.Set;
/**
* Created by bodet on 11/02/15.
*
* @author cedric.bodet@tngtech.com
*/
public class JacksonUtils {
private JacksonUtils() {
// Utility class with only static functions
}
public static boolean arrayContains(ArrayNode array, String needle) {
for (JsonNode jsonNode : array) {
if (jsonNode.isTextual() && needle.equals(jsonNode.textValue())) {
return true;
}
}
return false;
}
public static int arrayPosition(ArrayNode array, String needle) {
for (int i = 0; i < array.size(); i++) {
JsonNode jsonNode = array.get(i);
if (jsonNode.isTextual() && needle.equals(jsonNode.textValue())) {
return i;
}
}
return -1;
}
public static Set<String> extractSet(ArrayNode array) throws SW360Exception {
Set<String> result = new HashSet<>();
for (JsonNode jsonNode : array) {
if (jsonNode.isTextual())
result.add(jsonNode.textValue());
else
throw new SW360Exception("Non textual string ?!");
}
return result;
}
}