'Try to parse given input into a valid entry.
Args:
input_obj: TSV string or list of data.
Returns:
List of data
Raises:
Throws BadEntryException if data is invalid.'

def parse(self, input_obj):

    if isinstance(input_obj, str):
        processed = input_obj.split(' DCTB ')
        self.data = processed
    elif isinstance(input_obj, list):
        self.data = input_obj
    try:
        self.key = self.data[0].strip()
        self.entry_type = self.data[1].strip()
        self.reference = self.data[2].strip()
        if (len(self.data) > 3):
            self.category = self.data[4].strip()
            self.related = self.data[6].strip()
            self.abstract = self.data[11].strip()
            self.anchor = self.data[12].strip()
    except Exception as e:
        raise BadEntryException('Article    had    invalid    number    of    elements.')
    if (self.entry_type == 'A'):
        self.parse_alternative_keys()
    return self.data
