001/** 002 * Copyright (c) 2011, The University of Southampton and the individual contributors. 003 * All rights reserved. 004 * 005 * Redistribution and use in source and binary forms, with or without modification, 006 * are permitted provided that the following conditions are met: 007 * 008 * * Redistributions of source code must retain the above copyright notice, 009 * this list of conditions and the following disclaimer. 010 * 011 * * Redistributions in binary form must reproduce the above copyright notice, 012 * this list of conditions and the following disclaimer in the documentation 013 * and/or other materials provided with the distribution. 014 * 015 * * Neither the name of the University of Southampton nor the names of its 016 * contributors may be used to endorse or promote products derived from this 017 * software without specific prior written permission. 018 * 019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 022 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 023 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 026 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 028 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 029 */ 030package org.openimaj; 031 032import java.io.IOException; 033import java.io.InputStream; 034import java.net.URL; 035import java.util.Properties; 036 037import org.openimaj.citation.annotation.Reference; 038import org.openimaj.citation.annotation.ReferenceType; 039 040/** 041 * Useful utility methods to get things such as the current OpenIMAJ version. 042 * 043 * @author Jonathon Hare (jsh2@ecs.soton.ac.uk) 044 */ 045@Reference( 046 type = ReferenceType.Inproceedings, 047 author = { "Jonathan Hare", "Sina Samangooei", "David Dupplaw" }, 048 title = "OpenIMAJ and ImageTerrier: Java Libraries and Tools for Scalable Multimedia Analysis and Indexing of Images", 049 year = "2011", 050 booktitle = "ACM Multimedia 2011", 051 pages = { "691", "694" }, 052 url = "http://eprints.soton.ac.uk/273040/", 053 note = " Event Dates: 28/11/2011 until 1/12/2011", 054 month = "November", 055 publisher = "ACM") 056public class OpenIMAJ { 057 static { 058 String versionString; 059 060 try { 061 final InputStream is = OpenIMAJ.class.getResourceAsStream("OpenIMAJ.properties"); 062 final Properties props = new Properties(); 063 064 props.load(is); 065 versionString = props.getProperty("version"); 066 } catch (final IOException e) { 067 versionString = "unknown"; 068 } 069 070 version = versionString; 071 } 072 073 private static final String version; 074 075 private OpenIMAJ() { 076 } 077 078 /** 079 * Get the OpenIMAJ version currently being used 080 * 081 * @return the OpenIMAJ version 082 */ 083 public static String getVersion() { 084 return version; 085 } 086 087 /** 088 * Get a stream to the OpenIMAJ logo. 089 * 090 * @return a stream to the OpenIMAJ logo. 091 */ 092 public static InputStream getLogoAsStream() { 093 return OpenIMAJ.class.getResourceAsStream("OpenIMAJ.png"); 094 } 095 096 /** 097 * Get a URL to the OpenIMAJ logo. This is likely to be a jar:// url so 098 * can't be used outside the Java program. 099 * 100 * @return the OpenIMAJ logo URL 101 */ 102 public static URL getLogoAsURL() { 103 return OpenIMAJ.class.getResource("OpenIMAJ.png"); 104 } 105}