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