/* MetaInfo.java
*
* This class encapsulates information about the running simulator.
* (c) Andrea Spadaccini, 2013
*
* This file is part of the EduMIPS64 project, and is released under the GNU
* General Public License.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.edumips64.utils;
import java.net.URLDecoder;
import java.util.jar.Attributes;
import java.util.jar.JarFile;
import java.util.jar.Manifest;
// The meta information is currently stored in the Manifest.
public class MetaInfo {
static Attributes attributes;
static {
try {
String path = MetaInfo.class.getProtectionDomain().getCodeSource().getLocation().getPath();
String decodedPath = URLDecoder.decode(path, "UTF-8");
JarFile myJar = new JarFile(decodedPath);
Manifest manifest = myJar.getManifest();
if (manifest != null) {
attributes = manifest.getMainAttributes();
} else {
System.err.println("Error while getting the manifest from the JAR file.");
}
} catch (Exception e) {
System.err.println("Error while fetching version info from the jar file.");
}
}
// Returns the attribute value, or an empty string if it isn't found.
public static String get(String attribute) {
if (attributes == null) {
return "";
}
return attributes.getValue(attribute);
}
}