/*
* Created on Mar 22, 2003
*
* @author henkel@cs.colorado.edu
*
*/
package bibtex.dom;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
/**
* With standard macros we mean the ones defined in plain.bst
*
* @author henkel
*/
public final class BibtexStandardMacros {
private static HashSet monthAbbr = new HashSet();
static {
monthAbbr.addAll(
Arrays.asList(
new String[] {
"jan",
"feb",
"mar",
"apr",
"may",
"jun",
"jul",
"aug",
"sep",
"oct",
"nov",
"dec" }));
}
public static boolean isMonthAbbreviation(String string) {
assert string!=null: "string parameter may not be null.";
return monthAbbr.contains(string);
}
private static HashMap standardMacros = new HashMap();
static {
standardMacros.put("jan", "January");
standardMacros.put("feb", "February");
standardMacros.put("mar", "March");
standardMacros.put("apr", "April");
standardMacros.put("may", "May");
standardMacros.put("jun", "June");
standardMacros.put("jul", "July");
standardMacros.put("aug", "August");
standardMacros.put("sep", "September");
standardMacros.put("oct", "October");
standardMacros.put("nov", "November");
standardMacros.put("dec", "December");
standardMacros.put("acmcs", "ACM Computing Surveys");
standardMacros.put("acta", "Acta Informatica");
standardMacros.put("cacm", "Communications of the ACM");
standardMacros.put("ibmjrd", "IBM Journal of Research and Development");
standardMacros.put("ibmsj", "IBM Systems Journal");
standardMacros.put("ieeese", "IEEE Transactions on Software Engineering");
standardMacros.put("ieeetc", "IEEE Transactions on Computers");
standardMacros.put(
"ieeetcad",
"IEEE Transactions on Computer-Aided Design of Integrated Circuits");
standardMacros.put("ipl", "Information Processing Letters");
standardMacros.put("jacm", "Journal of the ACM");
standardMacros.put("jcss", "Journal of Computer and System Sciences");
standardMacros.put("scp", "Science of Computer Programming");
standardMacros.put("sicomp", "SIAM Journal on Computing");
standardMacros.put("tocs", "ACM Transactions on Computer Systems");
standardMacros.put("tods", "ACM Transactions on Database Systems");
standardMacros.put("tog", "ACM Transactions on Graphics");
standardMacros.put("toms", "ACM Transactions on Mathematical Software");
standardMacros.put("toois", "ACM Transactions on Office Information Systems");
standardMacros.put(
"toplas",
"ACM Transactions on Programming Languages and Systems");
standardMacros.put("tcs", "Theoretical Computer Science");
}
public static boolean isStandardMacro(String macroName) {
assert macroName!=null: "macroName parameter may not be null.";
return BibtexStandardMacros.standardMacros.containsKey(macroName);
}
public static String resolveStandardMacro(String macroName) {
assert macroName!=null: "macroName parameter may not be null.";
return (String) standardMacros.get(macroName);
}
}