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