blob: a5b5b8c7f63148bfc6dfdec26090f1db1af8b504 [file] [log] [blame]
<?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&lt;-&gt;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>