package org.jabref.model.entry;
import java.util.Objects;
import java.util.Optional;
import org.jabref.model.database.BibDatabase;
public class ParsedEntryLink {
private String key;
private Optional<BibEntry> linkedEntry;
private BibDatabase dataBase;
public ParsedEntryLink(String key, BibDatabase dataBase) {
this.key = key;
this.linkedEntry = dataBase.getEntryByKey(this.key);
this.dataBase = dataBase;
}
public ParsedEntryLink(BibEntry bibEntry) {
this.key = bibEntry.getCiteKeyOptional().orElse("");
this.linkedEntry = Optional.of(bibEntry);
}
public String getKey() {
return key;
}
public Optional<BibEntry> getLinkedEntry() {
return linkedEntry;
}
public void setKey(String newKey) {
this.key = newKey;
this.linkedEntry = getDataBase().getEntryByKey(this.key);
}
@Override
public int hashCode() {
return Objects.hash(key, linkedEntry);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof ParsedEntryLink)) {
return false;
}
ParsedEntryLink other = (ParsedEntryLink) obj;
return Objects.equals(key, other.key) && Objects.equals(linkedEntry, other.linkedEntry);
}
public BibDatabase getDataBase() {
return dataBase;
}
}