| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE section PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" |
| "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd"> |
| |
| <section id="bbv2.reference.class.property-set"> |
| |
| <title>Class property-set</title> |
| <indexterm> |
| <primary>property-set</primary> |
| </indexterm> |
| |
| <para>Class for storing a set of properties.</para> |
| |
| <programlisting language="jam"> |
| class property-set { |
| rule <link linkend="bbv2.reference.class.property-set.raw">raw</link> ( ) |
| rule <link linkend="bbv2.reference.class.property-set.str">str</link> ( ) |
| rule <link linkend="bbv2.reference.class.property-set.propagated">propagated</link> ( ) |
| rule <link linkend="bbv2.reference.class.property-set.add">add</link> ( ps ) |
| rule <link linkend="bbv2.reference.class.property-set.add-raw">add-raw</link> ( properties * ) |
| rule <link linkend="bbv2.reference.class.property-set.refine">refine</link> ( ps ) |
| rule <link linkend="bbv2.reference.class.property-set.get">get</link> ( feature ) |
| } |
| </programlisting> |
| |
| <para> |
| There is 1<->1 correspondence between identity and value. No two instances |
| of the class are equal. To maintain this property, the 'property-set.create' |
| rule should be used to create new instances. Instances are immutable. |
| </para> |
| |
| <orderedlist> |
| |
| <listitem id="bbv2.reference.class.property-set.raw"> |
| <indexterm zone="bbv2.reference.class.property-set.raw"> |
| <primary>raw</primary> |
| <secondary>Property Set Method</secondary> |
| </indexterm> |
| <code language="jam">rule raw ( )</code> |
| <para>Returns a Jam list of the stored properties.</para> |
| </listitem> |
| |
| <listitem id="bbv2.reference.class.property-set.str"> |
| <indexterm zone="bbv2.reference.class.property-set.str"> |
| <primary>str</primary> |
| <secondary>Property Set Method</secondary> |
| </indexterm> |
| <code language="jam">rule str ( )</code> |
| <para>Returns the string repesentation of the stored properties.</para> |
| </listitem> |
| |
| <listitem id="bbv2.reference.class.property-set.propagated"> |
| <indexterm zone="bbv2.reference.class.property-set.propagated"> |
| <primary>propagated</primary> |
| <secondary>Property Set Method</secondary> |
| </indexterm> |
| <code language="jam">rule propagated ( )</code> |
| <para> |
| Returns a <link linkend="bbv2.reference.class.property-set">property-set</link> |
| containing all the <link linkend="bbv2.reference.features.attributes.propagated">propagated</link> |
| properties in this <link linkend="bbv2.reference.class.property-set">property-set</link>. |
| </para> |
| </listitem> |
| |
| <listitem id="bbv2.reference.class.property-set.add"> |
| <indexterm zone="bbv2.reference.class.property-set.add"> |
| <primary>add</primary> |
| <secondary>Property Set Method</secondary> |
| </indexterm> |
| <code language="jam">rule add ( ps )</code> |
| <para> |
| Returns a new <link linkend="bbv2.reference.class.property-set"> |
| property-set</link> containing the union of the properties |
| in this <link linkend="bbv2.reference.class.property-set"> |
| property-set</link> and in <literal>ps</literal>. |
| <note> |
| <para> |
| If <literal>ps</literal> contains non-free properties |
| that should override the values in this object, use |
| <link linkend="bbv2.reference.class.property-set.refine"> |
| refine</link> instead. |
| </para> |
| </note> |
| </para> |
| </listitem> |
| |
| <listitem id="bbv2.reference.class.property-set.add-raw"> |
| <indexterm zone="bbv2.reference.class.property-set.add-raw"> |
| <primary>add-raw</primary> |
| <secondary>Property Set Method</secondary> |
| </indexterm> |
| <code language="jam">rule add-raw ( properties * )</code> |
| <para> |
| Link <link linkend="bbv2.reference.class.property-set.add"> |
| add</link>, except that it takes a list of properties |
| instead of a <link linkend="bbv2.reference.class.property-set"> |
| property-set</link>. |
| </para> |
| </listitem> |
| |
| <listitem id="bbv2.reference.class.property-set.refine"> |
| <indexterm zone="bbv2.reference.class.property-set.refine"> |
| <primary>refine</primary> |
| <secondary>Property Set Method</secondary> |
| </indexterm> |
| <code language="jam">rule refine ( ps )</code> |
| <para> |
| Refines properties by overriding any non-free and non-conditional |
| properties for which a different value is specified in |
| <literal>ps</literal>. Returns the resulting |
| <link linkend="bbv2.reference.class.property-set">property-set</link>. |
| </para> |
| </listitem> |
| |
| <listitem id="bbv2.reference.class.property-set.get"> |
| <indexterm zone="bbv2.reference.class.property-set.get"> |
| <primary>get</primary> |
| <secondary>Property Set Method</secondary> |
| </indexterm> |
| <code language="jam">rule get ( feature )</code> |
| <para> |
| Returns all the values of <literal>feature</literal>. |
| </para> |
| </listitem> |
| |
| </orderedlist> |
| |
| </section> |