Class Utils


  • public class Utils
    extends Object
    • Field Detail

      • STANDARDOBJBUILDER

        public static final Function<org.noggit.JSONParser,​org.noggit.ObjectBuilder> STANDARDOBJBUILDER
      • MAPWRITEROBJBUILDER

        public static final Function<org.noggit.JSONParser,​org.noggit.ObjectBuilder> MAPWRITEROBJBUILDER
      • MAPOBJBUILDER

        public static final Function<org.noggit.JSONParser,​org.noggit.ObjectBuilder> MAPOBJBUILDER
      • ARRAY_ELEMENT_INDEX

        public static final Pattern ARRAY_ELEMENT_INDEX
    • Constructor Detail

      • Utils

        public Utils()
    • Method Detail

      • getDeepCopy

        public static Map getDeepCopy​(Map<?,​?> map,
                                      int maxDepth)
      • getDeepCopy

        public static Map getDeepCopy​(Map<?,​?> map,
                                      int maxDepth,
                                      boolean mutable)
      • getDeepCopy

        public static Map getDeepCopy​(Map<?,​?> map,
                                      int maxDepth,
                                      boolean mutable,
                                      boolean sorted)
      • forEachMapEntry

        public static void forEachMapEntry​(Object o,
                                           BiConsumer fun)
      • getDeepCopy

        public static Collection<?> getDeepCopy​(Collection<?> c,
                                                int maxDepth,
                                                boolean mutable)
      • getDeepCopy

        public static Collection<?> getDeepCopy​(Collection<?> c,
                                                int maxDepth,
                                                boolean mutable,
                                                boolean sorted)
      • toJSON

        public static byte[] toJSON​(Object o)
      • toJSONString

        public static String toJSONString​(Object o)
      • toUTF8

        public static byte[] toUTF8​(org.noggit.CharArr out)
      • fromJSON

        public static Object fromJSON​(byte[] utf8)
      • fromJSON

        public static Object fromJSON​(byte[] utf8,
                                      int offset,
                                      int length)
      • fromJSON

        public static Object fromJSON​(InputStream is,
                                      Function<org.noggit.JSONParser,​org.noggit.ObjectBuilder> objBuilderProvider)
      • fromJSONResource

        public static Object fromJSONResource​(String resourceName)
      • getJSONParser

        public static org.noggit.JSONParser getJSONParser​(Reader reader)
      • fromJSONString

        public static Object fromJSONString​(String json)
      • getObjectByPath

        public static Object getObjectByPath​(Object root,
                                             boolean onlyPrimitive,
                                             String hierarchy)
      • setObjectByPath

        public static boolean setObjectByPath​(Object root,
                                              String hierarchy,
                                              Object value)
      • setObjectByPath

        public static boolean setObjectByPath​(Object root,
                                              List<String> hierarchy,
                                              Object value)
      • getObjectByPath

        public static Object getObjectByPath​(Object root,
                                             boolean onlyPrimitive,
                                             List<String> hierarchy)
      • consumeFully

        public static void consumeFully​(org.apache.http.HttpEntity entity)
        If the passed entity has content, make sure it is fully read and closed.
        Parameters:
        entity - to consume or null
      • readFully

        public static void readFully​(InputStream is)
                              throws IOException
        Make sure the InputStream is fully read.
        Parameters:
        is - to read
        Throws:
        IOException - on problem with IO
      • getJson

        public static Map<String,​Object> getJson​(SolrZkClient zkClient,
                                                       String path,
                                                       boolean retryOnConnLoss)
                                                throws org.apache.zookeeper.KeeperException,
                                                       InterruptedException
        Assumes data in ZooKeeper is a JSON string, deserializes it and returns as a Map
        Parameters:
        zkClient - the zookeeper client
        path - the path to the znode being read
        retryOnConnLoss - whether to retry the operation automatically on connection loss, see ZkCmdExecutor.retryOperation(ZkOperation)
        Returns:
        a Map if the node exists and contains valid JSON or an empty map if znode does not exist or has a null data
        Throws:
        org.apache.zookeeper.KeeperException
        InterruptedException
      • parseMetricsReplicaName

        public static String parseMetricsReplicaName​(String collectionName,
                                                     String coreName)
      • mergeJson

        public static boolean mergeJson​(Map<String,​Object> sink,
                                        Map<String,​Object> input)
        Applies one json over other. The 'input' is applied over the sink The values in input isapplied over the values in 'sink' . If a value is 'null' that value is removed from sink
        Parameters:
        sink - the original json object to start with. Ensure that this Map is mutable
        input - the json with new values
        Returns:
        whether there was any change made to sink or not.
      • applyUrlScheme

        public static String applyUrlScheme​(String url,
                                            String urlScheme)
        Given a URL string with or without a scheme, return a new URL with the correct scheme applied.
        Parameters:
        url - A URL to change the scheme (http|https)
        Returns:
        A new URL with the correct scheme
      • getBaseUrlForNodeName

        public static String getBaseUrlForNodeName​(String nodeName,
                                                   String urlScheme)
      • getBaseUrlForNodeName

        public static String getBaseUrlForNodeName​(String nodeName,
                                                   String urlScheme,
                                                   boolean isV2)
      • timeElapsed

        public static long timeElapsed​(TimeSource timeSource,
                                       long start,
                                       TimeUnit unit)
      • getMDCNode

        public static String getMDCNode()
      • handleExp

        public static <T> T handleExp​(org.slf4j.Logger logger,
                                      T def,
                                      Callable<T> c)
      • executeHttpMethod

        public static <T> T executeHttpMethod​(org.apache.http.client.HttpClient client,
                                              String url,
                                              Utils.InputStreamConsumer<T> consumer,
                                              org.apache.http.client.methods.HttpRequestBase httpMethod)