16c366306cf7356d3fda2eac460295080244061d7Cédric Beustpackage org.testng; 26c366306cf7356d3fda2eac460295080244061d7Cédric Beust 36c366306cf7356d3fda2eac460295080244061d7Cédric Beustimport java.io.Serializable; 4a26e157925819e1014c8905b9854725b7db1662eCédric Beustimport java.util.Set; 56c366306cf7356d3fda2eac460295080244061d7Cédric Beust 63881cf68f4c605682f7271ecce6c54e8c96de60dCédric Beust/** 73881cf68f4c605682f7271ecce6c54e8c96de60dCédric Beust * A trait that is used by all interfaces that lets the user add or remove their 83881cf68f4c605682f7271ecce6c54e8c96de60dCédric Beust * own attributes. 93881cf68f4c605682f7271ecce6c54e8c96de60dCédric Beust */ 106c366306cf7356d3fda2eac460295080244061d7Cédric Beustpublic interface IAttributes extends Serializable { 116c366306cf7356d3fda2eac460295080244061d7Cédric Beust /** 126c366306cf7356d3fda2eac460295080244061d7Cédric Beust * @param name The name of the attribute to return 136c366306cf7356d3fda2eac460295080244061d7Cédric Beust */ 146c366306cf7356d3fda2eac460295080244061d7Cédric Beust public Object getAttribute(String name); 156c366306cf7356d3fda2eac460295080244061d7Cédric Beust 166c366306cf7356d3fda2eac460295080244061d7Cédric Beust /** 17852cc8c751799975581672255aedfad805c5260aCédric Beust * Set a custom attribute. 186c366306cf7356d3fda2eac460295080244061d7Cédric Beust */ 196c366306cf7356d3fda2eac460295080244061d7Cédric Beust public void setAttribute(String name, Object value); 206c366306cf7356d3fda2eac460295080244061d7Cédric Beust 213881cf68f4c605682f7271ecce6c54e8c96de60dCédric Beust /** 223881cf68f4c605682f7271ecce6c54e8c96de60dCédric Beust * @return all the attributes names. 233881cf68f4c605682f7271ecce6c54e8c96de60dCédric Beust */ 24a26e157925819e1014c8905b9854725b7db1662eCédric Beust public Set<String> getAttributeNames(); 253881cf68f4c605682f7271ecce6c54e8c96de60dCédric Beust 263881cf68f4c605682f7271ecce6c54e8c96de60dCédric Beust /** 273881cf68f4c605682f7271ecce6c54e8c96de60dCédric Beust * Remove the attribute 280f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin * 293881cf68f4c605682f7271ecce6c54e8c96de60dCédric Beust * @return the attribute value if found, null otherwise 303881cf68f4c605682f7271ecce6c54e8c96de60dCédric Beust */ 313881cf68f4c605682f7271ecce6c54e8c96de60dCédric Beust public Object removeAttribute(String name); 326c366306cf7356d3fda2eac460295080244061d7Cédric Beust} 33