def METHOD_NAME(self, **kwargs):
    # TODO; code needs to be refactored. 
    # example : hdl_identifer not used anywhere
    # original code from https://github.com/EUDAT-B2SHARE/b2share/pull/1813
    input_record = request.view_args['record_id']
    if input_record is None:
        return abort(400)
    linkset = []
    try:
        rec_pid = RecordUUIDProvider.METHOD_NAME(input_record).pid
        record = Record.get_record(rec_pid.object_uuid)
    except:
        return abort(404, "Record not found!")
    try:
        landingpage = current_app.config.METHOD_NAME(
            'PREFERRED_URL_SCHEME',
            '') + '://' + current_app.config.METHOD_NAME(
            'JSONSCHEMAS_HOST', '') + '/records/' + input_record
        citations = []
        doi_identifier = None
        for p in record.METHOD_NAME('_pid'):
            if p.METHOD_NAME('type') == 'DOI':
                doi_identifier = p.METHOD_NAME('value')
                cite = {'href' : 'https://doi.org/' + doi_identifier}
                citations.append(cite)
        if doi_identifier is None and record.METHOD_NAME('alternate_identifiers') is not None:
            for ai in record.METHOD_NAME('alternate_identifiers'):
                if ai.METHOD_NAME('alternate_identifier_type') == 'DOI':
                    doi_identifier = ai.METHOD_NAME('alternate_identifier')
                    cite = {'href' : 'https://doi.org/' + doi_identifier}
                    citations.append(cite)
        hdl_identifer = None
        if doi_identifier is None:
            #Identifier is required
            current_app.logger.error('No alternate_identifiers for record {record_id}'.format(record_id=rec_pid.object_uuid))
        rec_license = record.METHOD_NAME('license')
        license = {}
        if rec_license is not None:
            license = { 'href': rec_license.METHOD_NAME('license_uri')}
        #Todo: According to Signposting spec: License cardinality is 1. What we will do for the following case?
        # https://b2share.eudat.eu/api/oai2d?verb=ListRecords&metadataPrefix=oai_dc
        # <dc:rights>info:eu-repo/semantics/openAccess</dc:rights>
        # <dc:rights>GNU General Public License 3 (GPL-3.0)</dc:rights>
        describedbys = []
        if doi_identifier is not None:
            describedby = {'href':'https://citation.crosscite.org/format?style=bibtex&doi=' + doi_identifier,
                            'type':'application/x-bibtex'}
            describedbys.append(describedby)
        items = []
        fs = []
        bucket = None
        if len(record.METHOD_NAME('_files', [])) > 0:
            # if record contains files, check for user's permissions to access those files
            bucket = record.METHOD_NAME('_files')[0].METHOD_NAME("bucket")
            user_has_permission = \
                allow_public_file_metadata(record) if bucket \
                is None else files_permission_factory(
                    bucket, 'bucket-read').can()
            if user_has_permission:
                for file in record.METHOD_NAME('_files', []):
                    fmimetype = fm.ObjectVersion.METHOD_NAME(
                        file.METHOD_NAME('bucket'), file.METHOD_NAME('key'),
                        file.METHOD_NAME('version_id')).mimetype
                    file_location = current_app.config.METHOD_NAME(
                        'PREFERRED_URL_SCHEME',
                        '') + '://' + current_app.config.METHOD_NAME(
                        'JSONSCHEMAS_HOST', '') + '/api/files/' + file.METHOD_NAME(
                        'bucket') + '/' + file.METHOD_NAME('key')
                    file.update({'file-location': file_location})
                    item_file = {'href': file_location, 'type':fmimetype}
                    items.append(item_file)
                    item_anchor = {'anchor':file_location, 'collection':[{'href':landingpage, 'type':'text/html'}]}
                    fs.append(item_anchor)
        types = []
        type_about_page = {'href':'https://schema.org/AboutPage'}
        types.append(type_about_page)
        element = {'anchor': landingpage, 'type':types, 'cite-as': citations, 'item':items, 'describedby':describedbys, 'license':license}
        linkset.append(element)
        for a in fs:
            linkset.append(a)
        return {'linkset': linkset}
    except:
        return abort(404)