package net.sf.jabref; /** * This class defines entry types for BibLatex support. */ public class BibLatexEntryTypes { /* "rare" fields? "annotator", "commentator", "titleaddon", "editora", "editorb", "editorc", "issuetitle", "issuesubtitle", "origlanguage", "version", "addendum" */ public static final BibtexEntryType ARTICLE = new BibtexEntryType() { public String getName() { return "Article"; } public String[] getRequiredFields() { return new String[] {"author", "title", "journaltitle", "year", "date"}; } public String[] getOptionalFields() { return new String[] {"translator", "annotator", "commentator", "subtitle", "titleaddon", "editor", "editora", "editorb", "editorc", "journalsubtitle", "issuetitle", "issuesubtitle", "language", "origlanguage", "series", "volume", "number", "eid", "issue", "date", "month", "year", "pages", "version", "note", "issn", "addendum", "pubstate", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } // TODO: number vs issue? public String[] getPrimaryOptionalFields() { return new String[] {"subtitle", "editor", "series", "volume", "number", "eid", "issue", "date", "month", "year", "pages", "note", "issn", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType BOOK = new BibtexEntryType() { public String getName() { return "Book"; } public String[] getRequiredFields() { return new String[] {"author", "title", "year", "date"}; } public String[] getOptionalFields() { return new String[] {"editor", "editora", "editorb", "editorc", "translator", "annotator", "commentator", "introduction", "foreword", "afterword", "subtitle", "titleaddon", "maintitle", "mainsubtitle", "maintitleaddon", "language", "origlanguage", "volume", "part", "edition", "volumes", "series", "number", "note", "publisher", "location", "isbn", "chapter", "pages", "pagetotal", "addendum", "pubstate", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String[] getPrimaryOptionalFields() { return new String[] {"editor", "subtitle", "titleaddon", "maintitle", "mainsubtitle", "maintitleaddon", "volume", "edition", "publisher", "isbn", "chapter", "pages", "pagetotal", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType INBOOK = new BibtexEntryType() { public String getName() { return "Inbook"; } public String[] getRequiredFields() { return new String[] {"author", "title", "booktitle", "year", "date"}; } public String[] getOptionalFields() { return new String[] {"bookauthor", "editor", "editora", "editorb", "editorc", "translator", "annotator", "commentator", "introduction", "foreword", "afterword", "subtitle", "titleaddon", "maintitle", "mainsubtitle", "maintitleaddon", "booksubtitle", "booktitleaddon", "language", "origlanguage", "volume", "part", "edition", "volumes", "series", "number", "note", "publisher", "location", "isbn", "chapter", "pages", "addendum", "pubstate", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String[] getPrimaryOptionalFields() { return new String[] {"bookauthor", "editor", "subtitle", "titleaddon", "maintitle", "mainsubtitle", "maintitleaddon", "booksubtitle", "booktitleaddon", "volume", "edition", "publisher", "isbn", "chapter", "pages", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType BOOKINBOOK = new BibtexEntryType() { public String getName() { return "Bookinbook"; } // Same fields as "INBOOK" according to Biblatex 1.0: public String[] getRequiredFields() { return BibLatexEntryTypes.INBOOK.getRequiredFields(); } public String[] getOptionalFields() { return BibLatexEntryTypes.INBOOK.getOptionalFields(); } public String[] getPrimaryOptionalFields() { return BibLatexEntryTypes.INBOOK.getPrimaryOptionalFields(); } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType SUPPBOOK = new BibtexEntryType() { public String getName() { return "Suppbook"; } // Same fields as "INBOOK" according to Biblatex 1.0: public String[] getRequiredFields() { return BibLatexEntryTypes.INBOOK.getRequiredFields(); } public String[] getOptionalFields() { return BibLatexEntryTypes.INBOOK.getOptionalFields(); } public String[] getPrimaryOptionalFields() { return BibLatexEntryTypes.INBOOK.getPrimaryOptionalFields(); } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType BOOKLET = new BibtexEntryType() { public String getName() { return "Booklet"; } public String[] getRequiredFields() { return new String[] {"author", "editor", "title", "year", "date"}; } public String[] getOptionalFields() { return new String[] {"subtitle", "titleaddon", "language", "howpublished", "type", "note", "location", "chapter", "pages", "pagetotal", "addendum", "pubstate", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String[] getPrimaryOptionalFields() { return new String[] {"subtitle", "titleaddon", "howpublished", "chapter", "pages", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType COLLECTION = new BibtexEntryType() { public String getName() { return "Collection"; } public String[] getRequiredFields() { return new String[] {"editor", "title", "year", "date"}; } public String[] getOptionalFields() { return new String[] {"editora", "editorb", "editorc", "translator", "annotator", "commentator", "introduction", "foreword", "afterword", "subtitle", "titleaddon", "maintitle", "mainsubtitle", "maintitleaddon", "language", "origlanguage", "volume", "part", "edition", "volumes", "series", "number", "note", "publisher", "location", "isbn", "chapter", "pages", "pagetotal", "addendum", "pubstate", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String[] getPrimaryOptionalFields() { return new String[] {"translator", "subtitle", "titleaddon", "maintitle", "mainsubtitle", "maintitleaddon", "volume", "edition", "publisher", "isbn", "chapter", "pages", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType INCOLLECTION = new BibtexEntryType() { public String getName() { return "Incollection"; } public String[] getRequiredFields() { return new String[] {"author", "editor", "title", "booktitle", "year", "date"}; } public String[] getOptionalFields() { return new String[] {"editora", "editorb", "editorc", "translator", "annotator", "commentator", "introduction", "foreword", "afterword", "subtitle", "titleaddon", "maintitle", "mainsubtitle", "maintitleaddon", "booksubtitle", "booktitleaddon", "language", "origlanguage", "volume", "part", "edition", "volumes", "series", "number", "note", "publisher", "location", "isbn", "chapter", "pages", "addendum", "pubstate", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String[] getPrimaryOptionalFields() { return new String[] {"translator", "subtitle", "titleaddon", "maintitle", "mainsubtitle", "maintitleaddon", "booksubtitle", "booktitleaddon", "volume", "edition", "publisher", "isbn", "chapter", "pages", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType SUPPCOLLECTION = new BibtexEntryType() { public String getName() { return "Suppcollection"; } // Treated as alias of "INCOLLECTION" according to Biblatex 1.0: public String[] getRequiredFields() { return BibLatexEntryTypes.INCOLLECTION.getRequiredFields(); } public String[] getOptionalFields() { return BibLatexEntryTypes.INCOLLECTION.getOptionalFields(); } public String[] getPrimaryOptionalFields() { return BibLatexEntryTypes.INCOLLECTION.getPrimaryOptionalFields(); } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType MANUAL = new BibtexEntryType() { public String getName() { return "Manual"; } public String[] getRequiredFields() { return new String[] {"author", "editor", "title", "year", "date"}; } public String[] getOptionalFields() { return new String[] {"subtitle", "titleaddon", "language", "edition", "type", "series", "number", "version", "note", "organization", "publisher", "location", "isbn", "chapter", "pages", "pagetotal", "addendum", "pubstate", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String[] getPrimaryOptionalFields() { return new String[] {"subtitle", "titleaddon", "edition", "publisher", "isbn", "chapter", "pages", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType MISC = new BibtexEntryType() { public String getName() { return "Misc"; } public String[] getRequiredFields() { return new String[] {"author", "editor", "title", "year", "date"}; } public String[] getOptionalFields() { return new String[] {"subtitle", "titleaddon", "language", "howpublished", "type", "version", "note", "organization", "location", "date", "month", "year", "addendum", "pubstate", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String[] getPrimaryOptionalFields() { return new String[] {"subtitle", "titleaddon", "howpublished", "location", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType ONLINE = new BibtexEntryType() { public String getName() { return "Online"; } public String[] getRequiredFields() { return new String[] {"author", "editor", "title", "year", "date", "url"}; } public String[] getOptionalFields() { return new String[] {"subtitle", "titleaddon", "language", "version", "note", "organization", "date", "month", "year", "addendum", "pubstate", "urldate"}; } public String[] getPrimaryOptionalFields() { return new String[] {"subtitle", "titleaddon", "note", "organization", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType PATENT = new BibtexEntryType() { public String getName() { return "Patent"; } public String[] getRequiredFields() { return new String[] {"author", "title", "number", "year", "date"}; } public String[] getOptionalFields() { return new String[] {"holder", "subtitle", "titleaddon", "type", "version", "location", "note", "date", "month", "year", "addendum", "pubstate", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String[] getPrimaryOptionalFields() { return new String[] {"holder", "subtitle", "titleaddon", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType PERIODICAL = new BibtexEntryType() { public String getName() { return "Periodical"; } public String[] getRequiredFields() { return new String[] {"editor", "title", "year", "date"}; } public String[] getOptionalFields() { return new String[] {"editora", "editorb", "editorc", "subtitle", "issuetitle", "issuesubtitle", "language", "series", "volume", "number", "issue", "date", "month", "year", "note", "issn", "addendum", "pubstate", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String[] getPrimaryOptionalFields() { return new String[] {"subtitle", "issuetitle", "issuesubtitle", "issn", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType SUPPPERIODICAL = new BibtexEntryType() { public String getName() { return "Suppperiodical"; } // Treated as alias of "ARTICLE" according to Biblatex 1.0: public String[] getRequiredFields() { return BibLatexEntryTypes.ARTICLE.getRequiredFields(); } public String[] getOptionalFields() { return BibLatexEntryTypes.ARTICLE.getOptionalFields(); } public String[] getPrimaryOptionalFields() { return BibLatexEntryTypes.ARTICLE.getPrimaryOptionalFields(); } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType PROCEEDINGS = new BibtexEntryType() { public String getName() { return "Proceedings"; } public String[] getRequiredFields() { return new String[] {"editor", "title", "year", "date"}; } public String[] getOptionalFields() { return new String[] {"subtitle", "titleaddon", "maintitle", "mainsubtitle", "maintitleaddon", "eventtitle", "eventdate", "venue", "language", "volume", "part", "volumes", "series", "number", "note", "organization", "publisher", "location", "month", "isbn", "chapter", "pages", "pagetotal", "addendum", "pubstate", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String[] getPrimaryOptionalFields() { return new String[] {"subtitle", "titleaddon", "maintitle", "mainsubtitle", "maintitleaddon", "eventtitle", "volume", "publisher", "isbn", "chapter", "pages", "pagetotal", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType INPROCEEDINGS = new BibtexEntryType() { public String getName() { return "Inproceedings"; } public String[] getRequiredFields() { return new String[] {"author", "editor", "title", "booktitle", "year", "date"}; } public String[] getOptionalFields() { return new String[] {"subtitle", "titleaddon", "maintitle", "mainsubtitle", "maintitleaddon", "booksubtitle", "booktitleaddon", "eventtitle", "eventdate", "venue", "language", "volume", "part", "volumes", "series", "number", "note", "organization", "publisher", "location", "month", "isbn", "chapter", "pages", "addendum", "pubstate", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String[] getPrimaryOptionalFields() { return new String[] {"subtitle", "titleaddon", "maintitle", "mainsubtitle", "maintitleaddon", "booksubtitle", "booktitleaddon", "eventtitle", "volume", "publisher", "isbn", "chapter", "pages", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType REFERENCE = new BibtexEntryType() { public String getName() { return "Reference"; } // Treated as alias of "COLLECTION" according to Biblatex 1.0: public String[] getRequiredFields() { return BibLatexEntryTypes.COLLECTION.getRequiredFields(); } public String[] getOptionalFields() { return BibLatexEntryTypes.COLLECTION.getOptionalFields(); } public String[] getPrimaryOptionalFields() { return BibLatexEntryTypes.COLLECTION.getPrimaryOptionalFields(); } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType INREFERENCE = new BibtexEntryType() { public String getName() { return "Inreference"; } // Treated as alias of "INCOLLECTION" according to Biblatex 1.0: public String[] getRequiredFields() { return BibLatexEntryTypes.INCOLLECTION.getRequiredFields(); } public String[] getOptionalFields() { return BibLatexEntryTypes.INCOLLECTION.getOptionalFields(); } public String[] getPrimaryOptionalFields() { return BibLatexEntryTypes.INCOLLECTION.getPrimaryOptionalFields(); } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType REPORT = new BibtexEntryType() { public String getName() { return "Report"; } public String[] getRequiredFields() { return new String[] {"author", "title", "type", "institution", "year", "date"}; } public String[] getOptionalFields() { return new String[] {"subtitle", "titleaddon", "language", "number", "version", "note", "location", "month", "isrn", "chapter", "pages", "pagetotal", "addendum", "pubstate", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String[] getPrimaryOptionalFields() { return new String[] {"subtitle", "titleaddon", "number", "isrn", "chapter", "pages", "pagetotal", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType SET = new BibtexEntryType() { public String getName() { return "Set"; } public String[] getRequiredFields() { return new String[] {"entryset", "crossref"}; } // These are all the standard entry fields, custom fields and field aliases not included: /* Optional fields left out since they take up too much space - I think the set type is mainly supposed to fall back on content from the entries contained in the set, so only the required fields are included.*/ public String[] getOptionalFields() { return null; /*return new String[] {"abstract", "addendum", "afterword", "annotation", "annotator", "author", "authortype", "bookauthor", "bookpagination", "booksubtitle", "booktitle", "booktitleaddon", "chapter", "commentator", "date", "doi", "edition", "editor", "editora", "editorb", "editorc", "editortype", "editoratype", "editorbtype", "editorctype", "eid", "eprint", "eprintclass", "eprinttype", "eventdate", "eventtitle", "file", "foreword", "holder", "howpublished", "indextitle", "insitution", "introduction", "isan", "isbn", "ismn", "isrn", "issn", "issue", "issuesubtitle", "issuetitle", "iswc", "journalsubtitle", "journaltitle", "label", "language", "library", "location", "mainsubtitle", "maintitle", "maintitleaddon", "month", "nameaddon", "note", "number", "organization", "origdate", "origlanguage", "origlocation", "origpublisher", "origtitle", "pages", "pagetotal", "pagination", "part", "publisher", "pubstate", "reprinttitle", "series", "shortauthor", "shorteditor", "shorthand", "shorthandintro", "shortjournal", "shortseries", "shorttitle", "subtitle", "title", "titleaddon", "translator", "type", "url", "urldate", "venue", "version", "volume", "volumes", "year", "crossref", "entryset", "entrysubtype", "execute", "gender", "hyphenation", "indexsorttitle", "keywords", "options", "presort", "sortkey", "sortname", "sorttitle", "sortyear", "xref"};*/ } // These are just appr. the first half of the above fields: public String[] getPrimaryOptionalFields() { return null; /*return new String[] {"abstract", "addendum", "afterword", "annotation", "annotator", "author", "authortype", "bookauthor", "bookpagination", "booksubtitle", "booktitle", "booktitleaddon", "chapter", "commentator", "date", "doi", "edition", "editor", "editora", "editorb", "editorc", "editortype", "editoratype", "editorbtype", "editorctype", "eid", "eprint", "eprintclass", "eprinttype", "eventdate", "eventtitle", "file", "foreword", "holder", "howpublished", "indextitle", "insitution", "introduction", "isan", "isbn", "ismn", "isrn", "issn", "issue", "issuesubtitle", "issuetitle", "iswc", "journalsubtitle", "journaltitle", "label", "language", "library", "location", "mainsubtitle", "maintitle", "maintitleaddon", "month", "nameaddon"};*/ } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType THESIS = new BibtexEntryType() { public String getName() { return "Thesis"; } public String[] getRequiredFields() { return new String[] {"author", "title", "type", "institution", "year", "date"}; } public String[] getOptionalFields() { return new String[] {"subtitle", "titleaddon", "language", "note", "location", "month", "chapter", "pages", "pagetotal", "addendum", "pubstate", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String[] getPrimaryOptionalFields() { return new String[] {"subtitle", "titleaddon", "chapter", "pages", "pagetotal", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType UNPUBLISHED = new BibtexEntryType() { public String getName() { return "Unpublished"; } public String[] getRequiredFields() { return new String[] {"author", "title", "year", "date"}; } public String[] getOptionalFields() { return new String[] {"subtitle", "titleaddon", "language", "howpublished", "note", "location", "date", "month", "year", "addendum", "pubstate", "url", "urldate"}; } public String[] getPrimaryOptionalFields() { return new String[] {"subtitle", "titleaddon", "howpublished", "pubstate", "url", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; // === Type aliases: === public static final BibtexEntryType CONFERENCE = new BibtexEntryType() { public String getName() { return "Conference"; } // Treated as alias of "INPROCEEDINGS" according to Biblatex 1.0: public String[] getRequiredFields() { return BibLatexEntryTypes.INPROCEEDINGS.getRequiredFields(); } public String[] getOptionalFields() { return BibLatexEntryTypes.INPROCEEDINGS.getOptionalFields(); } public String[] getPrimaryOptionalFields() { return BibLatexEntryTypes.INPROCEEDINGS.getPrimaryOptionalFields(); } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType ELECTRONIC = new BibtexEntryType() { public String getName() { return "Electronic"; } // Treated as alias of "ONLINE" according to Biblatex 1.0: public String[] getRequiredFields() { return BibLatexEntryTypes.ONLINE.getRequiredFields(); } public String[] getOptionalFields() { return BibLatexEntryTypes.ONLINE.getOptionalFields(); } public String[] getPrimaryOptionalFields() { return BibLatexEntryTypes.ONLINE.getPrimaryOptionalFields(); } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType MASTERSTHESIS = new BibtexEntryType() { public String getName() { return "Mastersthesis"; } // Treated as alias of "THESIS", except "type" field is optional public String[] getRequiredFields() { return new String[] {"author", "title", "institution", "year", "date"}; } public String[] getOptionalFields() { return new String[] {"subtitle", "titleaddon", "type", "language", "note", "location", "month", "chapter", "pages", "pagetotal", "addendum", "pubstate", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String[] getPrimaryOptionalFields() { return new String[] {"subtitle", "titleaddon", "type", "chapter", "pages", "pagetotal", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType PHDTHESIS = new BibtexEntryType() { public String getName() { return "Phdthesis"; } // Treated as alias of "THESIS", except "type" field is optional public String[] getRequiredFields() { return new String[] {"author", "title", "institution", "year", "date"}; } public String[] getOptionalFields() { return new String[] {"subtitle", "titleaddon", "type", "language", "note", "location", "month", "chapter", "pages", "pagetotal", "addendum", "pubstate", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String[] getPrimaryOptionalFields() { return new String[] {"subtitle", "titleaddon", "type", "chapter", "pages", "pagetotal", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType TECHREPORT = new BibtexEntryType() { public String getName() { return "Techreport"; } // Treated as alias of "REPORT", except "type" field is optional public String[] getRequiredFields() { return new String[] {"author", "title", "institution", "year", "date"}; } public String[] getOptionalFields() { return new String[] {"subtitle", "titleaddon", "type", "language", "number", "version", "note", "location", "month", "isrn", "chapter", "pages", "pagetotal", "addendum", "pubstate", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String[] getPrimaryOptionalFields() { return new String[] {"subtitle", "titleaddon", "type", "number", "isrn", "chapter", "pages", "pagetotal", "doi", "eprint", "eprintclass", "eprinttype", "url", "urldate"}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; public static final BibtexEntryType WWW = new BibtexEntryType() { public String getName() { return "Www"; } // Treated as alias of "ONLINE" according to Biblatex 1.0: public String[] getRequiredFields() { return BibLatexEntryTypes.ONLINE.getRequiredFields(); } public String[] getOptionalFields() { return BibLatexEntryTypes.ONLINE.getOptionalFields(); } public String[] getPrimaryOptionalFields() { return BibLatexEntryTypes.ONLINE.getPrimaryOptionalFields(); } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } }; // Unsupported types and custom types left out /*public static final BibtexEntryType ARTICLE = new BibtexEntryType() { public String getName() { return "Article"; } public String[] getRequiredFields() { return new String[] {}; } public String[] getOptionalFields() { return new String[] {}; } public String[] getPrimaryOptionalFields() { return new String[] {}; } public String describeRequiredFields() { return ""; } public boolean hasAllRequiredFields(BibtexEntry entry, BibtexDatabase database) { return entry.allFieldsPresent(getRequiredFields(), database); } };*/ }