package ecologylab.serialization.library.bibtex; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import ecologylab.net.ParsedURL; import ecologylab.serialization.ElementState; import ecologylab.serialization.SIMPLTranslationException; import ecologylab.serialization.SimplTypesScope; import ecologylab.serialization.annotations.bibtex_key; import ecologylab.serialization.annotations.bibtex_tag; import ecologylab.serialization.annotations.bibtex_type; import ecologylab.serialization.annotations.simpl_collection; import ecologylab.serialization.annotations.simpl_nowrap; import ecologylab.serialization.annotations.simpl_scalar; import ecologylab.serialization.formatenums.StringFormat; @bibtex_type("article") public class Entry extends ElementState { @bibtex_key @simpl_scalar private String citationKey; @bibtex_tag("title") @simpl_scalar private String title; @bibtex_tag("authors") @simpl_nowrap @simpl_collection("author") private ArrayList<String> authors; @bibtex_tag("journals") @simpl_scalar private String journal; @bibtex_tag("volume") @simpl_scalar private Integer volume; @bibtex_tag("issue") @simpl_scalar private Integer issue; @bibtex_tag("month") @simpl_scalar private String month; @bibtex_tag("year") @simpl_scalar private String year; @bibtex_tag("issn") @simpl_scalar private String issn; @bibtex_tag("pages") @simpl_scalar private String pages; @bibtex_tag("numPages") @simpl_scalar private String numPages; @bibtex_tag("url") @simpl_scalar private ParsedURL url; @bibtex_tag("acmid") @simpl_scalar private String acmid; @bibtex_tag("publisher") @simpl_scalar private String publisher; @bibtex_tag("address") @simpl_scalar private String address; @bibtex_tag("keywords") @simpl_collection("keywords") private ArrayList<String> keywords; public Entry() { } public void setTitle(String title) { this.title = title; } public String getTitle() { return title; } public void setAuthors(ArrayList<String> authors) { this.authors = authors; } public ArrayList<String> getAuthors() { return authors; } public void setJournal(String journal) { this.journal = journal; } public String getJournal() { return journal; } public void setVolume(Integer volume) { this.volume = volume; } public Integer getVolume() { return volume; } public void setIssue(Integer issue) { this.issue = issue; } public Integer getIssue() { return issue; } public void setMonth(String month) { this.month = month; } public String getMonth() { return month; } public void setYear(String year) { this.year = year; } public String getYear() { return year; } public void setPages(String pages) { this.pages = pages; } public String getPages() { return pages; } public void setNumPages(String numPages) { this.numPages = numPages; } public String getNumPages() { return numPages; } public void setUrl(ParsedURL url) { this.url = url; } public ParsedURL getUrl() { return url; } public void setAcmid(String acmid) { this.acmid = acmid; } public String getAcmid() { return acmid; } public void setPublisher(String publisher) { this.publisher = publisher; } public String getPublisher() { return publisher; } public void setAddress(String address) { this.address = address; } public String getAddress() { return address; } public void setKeywords(ArrayList<String> keywords) { this.keywords = keywords; } public ArrayList<String> getKeywords() { return keywords; } public void setIssn(String issn) { this.issn = issn; } public String getIssn() { return issn; } public void setCitationKey(String citationKey) { this.citationKey = citationKey; } public String getCitationKey() { return citationKey; } public static void main(String args[]) throws SIMPLTranslationException, MalformedURLException { /* @article{Yu:1995:ECK:627296.627650, author = {Yu, Sheng-Ke}, title = {Errata: Comments on 'Knowledge Representation Using Fuzzy Petri Nets'}, journal = {IEEE Trans. on Knowl. and Data Eng.}, volume = {7}, issue = {1}, month = {February}, year = {1995}, issn = {1041-4347}, pages = {190--192}, numpages = {3}, url = {http://portal.acm.org/citation.cfm?id=627296.627650}, acmid = {627650}, publisher = {IEEE Educational Activities Department}, address = {Piscataway, NJ, USA}, keywords = {Fuzzy Petri Net, fuzzy production rule, fuzzy reasoning, immediate reachability set, knowledge representation, reachability set.}, } */ Entry e = new Entry(); ArrayList<String> authors = new ArrayList<String>(); ArrayList<String> keywords = new ArrayList<String>(); authors.add("Yu"); authors.add("Sheng-Ke"); keywords.add("Fuzzy Petri Nets"); keywords.add("fuzzy production rule"); keywords.add("fuzzy reasoning"); keywords.add("immediate reachability set"); keywords.add("knowledge representation"); keywords.add("reachability set"); e.setCitationKey("Yu:1995:ECK:627296.627650"); e.setAuthors(authors); e.setTitle("Errata: Comments on Knowledge Representation Using Fuzzy Petri Nets"); e.setJournal("IEEE Trans. on Knowl. and Data Eng."); e.setVolume(1); e.setIssue(1); e.setMonth("Feburary"); e.setYear("1995"); e.setIssn("1041-4347"); e.setPages("190--192"); e.setNumPages("3"); e.setUrl(new ParsedURL(new URL("http://portal.acm.org/citation.cfm?id=627296.627650"))); e.setAcmid("627650"); e.setPublisher("IEEE Educational Activities Department"); e.setAddress("Piscataway, NJ, USA"); e.setKeywords(keywords); SimplTypesScope.serialize(e, System.out, StringFormat.BIBTEX); } }