xref: /llvm-project/cross-project-tests/debuginfo-tests/dexter/dex/command/commands/DexDeclareFile.py (revision 45a40c163932d12b72b33bd1d8a84519392b5d39)
11364750dSJames Henderson# DExTer : Debugging Experience Tester
21364750dSJames Henderson# ~~~~~~   ~         ~~         ~   ~~
31364750dSJames Henderson#
41364750dSJames Henderson# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
51364750dSJames Henderson# See https://llvm.org/LICENSE.txt for license information.
61364750dSJames Henderson# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
71364750dSJames Henderson"""Commmand sets the path for all following commands to 'declared_file'.
81364750dSJames Henderson"""
91364750dSJames Henderson
101364750dSJames Hendersonfrom pathlib import PurePath
111364750dSJames Henderson
121364750dSJames Hendersonfrom dex.command.CommandBase import CommandBase
131364750dSJames Henderson
141364750dSJames Henderson
151364750dSJames Hendersonclass DexDeclareFile(CommandBase):
161364750dSJames Henderson    def __init__(self, declared_file):
171364750dSJames Henderson        if not isinstance(declared_file, str):
18*f98ee40fSTobias Hieta            raise TypeError("invalid argument type")
191364750dSJames Henderson
201364750dSJames Henderson        # Use PurePath to create a cannonical platform path.
211364750dSJames Henderson        # TODO: keep paths as PurePath objects for 'longer'
221364750dSJames Henderson        self.declared_file = str(PurePath(declared_file))
231364750dSJames Henderson        super(DexDeclareFile, self).__init__()
241364750dSJames Henderson
251364750dSJames Henderson    @staticmethod
261364750dSJames Henderson    def get_name():
271364750dSJames Henderson        return __class__.__name__
281364750dSJames Henderson
291364750dSJames Henderson    def eval(self):
301364750dSJames Henderson        return self.declared_file
31