<h2>org.autoplot.hapiserver.Util</h2><p>helpful functions.</p> <h2>Util( )</h2> <p></p> <hr> <a name="HAPI_SERVER_HOME_PROPERTY"></a> <h2>HAPI_SERVER_HOME_PROPERTY</h2> <p>This should point to the name of the directory containing HAPI configuration. This directory should contain catalog.json, capabilities.json and a subdirectory "info" which contains files with the name <ID>.json, each containing the info response. Note these should also contain a tag "x_uri" which is the Autoplot URI that serves this data.</p> <hr> <a name="csvSplit-java.lang.String-int"></a> <h2>csvSplit</h2> csvSplit( <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/String.html'>String</a> line, int nf ) → <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/String.html'>String[]</a> <p>split, but not when comma is within quotes.</p> <h3>Parameters</h3> line - for example 'a,b,"c,d"' <br> nf - number of fields, or -1 for no constraint <h3>Returns:</h3> ['a','b','c,d'] <br><br> <a href="https://github.com/autoplot/dev/search?q=csvSplit&unscoped_q=csvSplit">[search for examples]</a> <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/hapiserver/Util.md">[view on GitHub]</a> <a href="https://cottagesystems.com/~jbf/autoplot/doc2018/org/autoplot/hapiserver/Util.html#csvSplit-java.lang.String-int">[view on old javadoc]</a> <br> <br> <hr> <a name="fileSystemSafeName-java.lang.String"></a> <h2>fileSystemSafeName</h2> fileSystemSafeName( <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/String.html'>String</a> s ) → <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/String.html'>String</a> <p>convert IDs and NAMEs into safe names which will work on all platforms. If the name is modified, it will start with an underscore (_). <li>poolTemperature -> poolTemperature <li>Iowa City Conditions -> _Iowa+City+Conditions</p> <h3>Parameters</h3> s - a String <h3>Returns:</h3> a String <br><br> <a href="https://github.com/autoplot/dev/search?q=fileSystemSafeName&unscoped_q=fileSystemSafeName">[search for examples]</a> <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/hapiserver/Util.md">[view on GitHub]</a> <a href="https://cottagesystems.com/~jbf/autoplot/doc2018/org/autoplot/hapiserver/Util.html#fileSystemSafeName-java.lang.String">[view on old javadoc]</a> <br> <br> <hr> <a name="getDurationForHumans-long"></a> <h2>getDurationForHumans</h2> getDurationForHumans( long dt ) → <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/String.html'>String</a> <p>return the duration in a easily-human-consumable form.</p> <h3>Parameters</h3> dt - the duration in milliseconds. <h3>Returns:</h3> a duration like "2.6 hours" <br><br> <a href="https://github.com/autoplot/dev/search?q=getDurationForHumans&unscoped_q=getDurationForHumans">[search for examples]</a> <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/hapiserver/Util.md">[view on GitHub]</a> <a href="https://cottagesystems.com/~jbf/autoplot/doc2018/org/autoplot/hapiserver/Util.html#getDurationForHumans-long">[view on old javadoc]</a> <br> <br> <hr> <a name="getHapiHome"></a> <h2>getHapiHome</h2> getHapiHome( ) → <a href='https://docs.oracle.com/javase/8/docs/api/java/io/File.html'>java.io.File</a> <p>return the root of the HAPI server.</p> <h3>Returns:</h3> the root of the HAPI server. <br><br> <a href="https://github.com/autoplot/dev/search?q=getHapiHome&unscoped_q=getHapiHome">[search for examples]</a> <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/hapiserver/Util.md">[view on GitHub]</a> <a href="https://cottagesystems.com/~jbf/autoplot/doc2018/org/autoplot/hapiserver/Util.html#getHapiHome">[view on old javadoc]</a> <br> <br> <hr> <a name="getNumberOfElements-JSONObject"></a> <h2>getNumberOfElements</h2> getNumberOfElements( JSONObject info ) → int[] <p>return the total number of elements of each parameter.</p> <h3>Parameters</h3> info - the info <h3>Returns:</h3> an int array with the number of elements in each parameter. <br><br> <a href="https://github.com/autoplot/dev/search?q=getNumberOfElements&unscoped_q=getNumberOfElements">[search for examples]</a> <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/hapiserver/Util.md">[view on GitHub]</a> <a href="https://cottagesystems.com/~jbf/autoplot/doc2018/org/autoplot/hapiserver/Util.html#getNumberOfElements-JSONObject">[view on old javadoc]</a> <br> <br> <hr> <a name="hapiVersion"></a> <h2>hapiVersion</h2> hapiVersion( ) → <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/String.html'>String</a> <p>return the HAPI protocol version.</p> <h3>Returns:</h3> the HAPI protocol version. <br><br> <a href="https://github.com/autoplot/dev/search?q=hapiVersion&unscoped_q=hapiVersion">[search for examples]</a> <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/hapiserver/Util.md">[view on GitHub]</a> <a href="https://cottagesystems.com/~jbf/autoplot/doc2018/org/autoplot/hapiserver/Util.html#hapiVersion">[view on old javadoc]</a> <br> <br> <hr> <a name="isTrustedClient-HttpServletRequest"></a> <h2>isTrustedClient</h2> isTrustedClient( HttpServletRequest request ) → boolean <p>return true if the client is trusted and additional information about the server for debugging can be included in the response.</p> <h3>Parameters</h3> request - a HttpServletRequest <h3>Returns:</h3> a boolean <br><br> <a href="https://github.com/autoplot/dev/search?q=isTrustedClient&unscoped_q=isTrustedClient">[search for examples]</a> <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/hapiserver/Util.md">[view on GitHub]</a> <a href="https://cottagesystems.com/~jbf/autoplot/doc2018/org/autoplot/hapiserver/Util.html#isTrustedClient-HttpServletRequest">[view on old javadoc]</a> <br> <br> <hr> <a name="main-java.lang.String[]"></a> <h2>main</h2> main( <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/String.html'>String[]</a> args ) → void <p></p> <h3>Parameters</h3> args - a java.lang.String[] <h3>Returns:</h3> void (returns nothing) <br><br> <a href="https://github.com/autoplot/dev/search?q=main&unscoped_q=main">[search for examples]</a> <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/hapiserver/Util.md">[view on GitHub]</a> <a href="https://cottagesystems.com/~jbf/autoplot/doc2018/org/autoplot/hapiserver/Util.html#main-java.lang.String[]">[view on old javadoc]</a> <br> <br> <hr> <a name="maybeInitialize-ServletContext"></a> <h2>maybeInitialize</h2> maybeInitialize( ServletContext context ) → void <p>if HAPI_HOME has not been set, then set it.</p> <h3>Parameters</h3> context - a ServletContext <h3>Returns:</h3> void (returns nothing) <br><br> <a href="https://github.com/autoplot/dev/search?q=maybeInitialize&unscoped_q=maybeInitialize">[search for examples]</a> <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/hapiserver/Util.md">[view on GitHub]</a> <a href="https://cottagesystems.com/~jbf/autoplot/doc2018/org/autoplot/hapiserver/Util.html#maybeInitialize-ServletContext">[view on old javadoc]</a> <br> <br> <hr> <a name="raiseBadId-java.lang.String-HttpServletResponse-java.io.PrintWriter"></a> <h2>raiseBadId</h2> raiseBadId( <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/String.html'>String</a> id, HttpServletResponse response, <a href='https://docs.oracle.com/javase/8/docs/api/java/io/PrintWriter.html'>java.io.PrintWriter</a> out ) → void <p>send a "bad id" response to the client.</p> <h3>Parameters</h3> id - the id. <br> response - the response object <br> out - the print writer for the response object. <h3>Returns:</h3> void (returns nothing) <br><br> <a href="https://github.com/autoplot/dev/search?q=raiseBadId&unscoped_q=raiseBadId">[search for examples]</a> <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/hapiserver/Util.md">[view on GitHub]</a> <a href="https://cottagesystems.com/~jbf/autoplot/doc2018/org/autoplot/hapiserver/Util.html#raiseBadId-java.lang.String-HttpServletResponse-java.io.PrintWriter">[view on old javadoc]</a> <br> <br> <hr> <a name="raiseMisconfiguration-java.lang.String-java.lang.Exception-HttpServletResponse-java.io.PrintWriter"></a> <h2>raiseMisconfiguration</h2> raiseMisconfiguration( <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/String.html'>String</a> id, <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html'>java.lang.Exception</a> ex, HttpServletResponse response, <a href='https://docs.oracle.com/javase/8/docs/api/java/io/PrintWriter.html'>java.io.PrintWriter</a> out ) → void <p>send a "bad id" response to the client.</p> <h3>Parameters</h3> id - the id. <br> ex - an exception <br> response - the response object <br> out - the print writer for the response object. <h3>Returns:</h3> void (returns nothing) <br><br> <a href="https://github.com/autoplot/dev/search?q=raiseMisconfiguration&unscoped_q=raiseMisconfiguration">[search for examples]</a> <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/hapiserver/Util.md">[view on GitHub]</a> <a href="https://cottagesystems.com/~jbf/autoplot/doc2018/org/autoplot/hapiserver/Util.html#raiseMisconfiguration-java.lang.String-java.lang.Exception-HttpServletResponse-java.io.PrintWriter">[view on old javadoc]</a> <br> <br> <hr> <a name="serverVersion"></a> <h2>serverVersion</h2> serverVersion( ) → <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/String.html'>String</a> <p>return the server implementation version.</p> <h3>Returns:</h3> the server implementation version. <br><br> <a href="https://github.com/autoplot/dev/search?q=serverVersion&unscoped_q=serverVersion">[search for examples]</a> <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/hapiserver/Util.md">[view on GitHub]</a> <a href="https://cottagesystems.com/~jbf/autoplot/doc2018/org/autoplot/hapiserver/Util.html#serverVersion">[view on old javadoc]</a> <br> <br> <hr> <a name="setHapiHome-java.io.File"></a> <h2>setHapiHome</h2> setHapiHome( <a href='https://docs.oracle.com/javase/8/docs/api/java/io/File.html'>java.io.File</a> f ) → void <p></p> <h3>Parameters</h3> f - a File <h3>Returns:</h3> void (returns nothing) <br><br> <a href="https://github.com/autoplot/dev/search?q=setHapiHome&unscoped_q=setHapiHome">[search for examples]</a> <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/hapiserver/Util.md">[view on GitHub]</a> <a href="https://cottagesystems.com/~jbf/autoplot/doc2018/org/autoplot/hapiserver/Util.html#setHapiHome-java.io.File">[view on old javadoc]</a> <br> <br> <hr> <a name="subsetParams-JSONObject-java.lang.String"></a> <h2>subsetParams</h2> subsetParams( JSONObject info, <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/String.html'>String</a> parameters ) → JSONObject <p>return a new JSONObject for the info request, with the subset of parameters.</p> <h3>Parameters</h3> info - the root node of the info response. <br> parameters - comma-delimited list of parameters. <h3>Returns:</h3> the new JSONObject, with special tag __indexmap__ showing which columns are to be included in a data response. <br><br> <a href="https://github.com/autoplot/dev/search?q=subsetParams&unscoped_q=subsetParams">[search for examples]</a> <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/hapiserver/Util.md">[view on GitHub]</a> <a href="https://cottagesystems.com/~jbf/autoplot/doc2018/org/autoplot/hapiserver/Util.html#subsetParams-JSONObject-java.lang.String">[view on old javadoc]</a> <br> <br> <hr> <a name="transfer-java.io.InputStream-java.io.OutputStream"></a> <h2>transfer</h2> transfer( <a href='https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html'>java.io.InputStream</a> src, <a href='https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html'>java.io.OutputStream</a> dest ) → void <p>transfers the data from one channel to another. src and dest are closed after the operation is complete.</p> <h3>Parameters</h3> src - an InputStream <br> dest - an OutputStream <h3>Returns:</h3> void (returns nothing) <br><br> <a href="https://github.com/autoplot/dev/search?q=transfer&unscoped_q=transfer">[search for examples]</a> <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/hapiserver/Util.md">[view on GitHub]</a> <a href="https://cottagesystems.com/~jbf/autoplot/doc2018/org/autoplot/hapiserver/Util.html#transfer-java.io.InputStream-java.io.OutputStream">[view on old javadoc]</a> <br> <br> <hr> <a name="trimUTF8-byte[]-int"></a> <h2>trimUTF8</h2> trimUTF8( byte[] bytes, int k ) → byte[] <p>properly trim the byte array containing a UTF-8 String to a limit</p> <h3>Parameters</h3> bytes - the bytes <br> k - the number of bytes <h3>Returns:</h3> a byte[] <br><br> <a href="https://github.com/autoplot/dev/search?q=trimUTF8&unscoped_q=trimUTF8">[search for examples]</a> <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/hapiserver/Util.md">[view on GitHub]</a> <a href="https://cottagesystems.com/~jbf/autoplot/doc2018/org/autoplot/hapiserver/Util.html#trimUTF8-byte[]-int">[view on old javadoc]</a> <br> <br> <hr> <a name="validateJSON-java.lang.String"></a> <h2>validateJSON</h2> validateJSON( <a href='https://docs.oracle.com/javase/8/docs/api/java/lang/String.html'>String</a> json ) → boolean <p>return true if this is valid JSON, false otherwise, and log the exception at SEVERE.</p> <h3>Parameters</h3> json - a String <h3>Returns:</h3> a boolean <br><br> <a href="https://github.com/autoplot/dev/search?q=validateJSON&unscoped_q=validateJSON">[search for examples]</a> <a href="https://github.com/autoplot/documentation/tree/master/javadoc/org/autoplot/hapiserver/Util.md">[view on GitHub]</a> <a href="https://cottagesystems.com/~jbf/autoplot/doc2018/org/autoplot/hapiserver/Util.html#validateJSON-java.lang.String">[view on old javadoc]</a> <br> <br>