Changeset 1672
- Timestamp:
- 04/27/09 15:29:27 (16 years ago)
- Location:
- trunk/sources
- Files:
-
- 15 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Constraints/3.3/AllSubOperatorsTypeConstraint.cs
r1529 r1672 27 27 using System.Xml; 28 28 using System.Diagnostics; 29 using HeuristicLab.Persistence.Default.Decomposers.Storable; 29 30 30 31 namespace HeuristicLab.Constraints { … … 34 35 public class AllSubOperatorsTypeConstraint : ConstraintBase { 35 36 37 [Storable] 36 38 private SubOperatorTypeConstraint groupConstraint; 37 39 /// <summary> … … 86 88 public override bool Check(IItem data) { 87 89 IOperator op = data as IOperator; 88 if (data == null) return false;90 if (data == null) return false; 89 91 90 for (int i = 0; i < op.SubOperators.Count; i++) {92 for (int i = 0; i < op.SubOperators.Count; i++) { 91 93 groupConstraint.SubOperatorIndex.Data = i; 92 if (groupConstraint.Check(data) == false) {94 if (groupConstraint.Check(data) == false) { 93 95 return false; 94 96 } … … 126 128 return new AllSubOperatorsTypeConstraintView(groupConstraint); 127 129 } 128 129 #region persistence130 /// <summary>131 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>.132 /// </summary>133 /// <remarks>The sub-operators are saved as a child node with tag name134 /// <c>SubOperatorsGroupConstraint</c>.</remarks>135 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param>136 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param>137 /// <param name="persistedObjects">The dictionary of all already persisted objects.138 /// (Needed to avoid cycles.)</param>139 /// <returns>The saved <see cref="XmlNode"/>.</returns>140 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {141 XmlNode node = base.GetXmlNode(name, document, persistedObjects);142 XmlNode subOperatorsNode = PersistenceManager.Persist("SubOperatorsGroupConstraint", groupConstraint, document, persistedObjects);143 node.AppendChild(subOperatorsNode);144 145 return node;146 }147 148 /// <summary>149 /// Loads the persisted constraint from the specified <paramref name="node"/>.150 /// </summary>151 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for152 /// more information.</remarks>153 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param>154 /// <param name="restoredObjects">The dictionary of all already restored objects.155 /// (Needed to avoid cycles.)</param>156 public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {157 base.Populate(node, restoredObjects);158 groupConstraint = (SubOperatorTypeConstraint)PersistenceManager.Restore(node.SelectSingleNode("SubOperatorsGroupConstraint"), restoredObjects);159 }160 #endregion persistence161 130 } 162 131 } -
trunk/sources/HeuristicLab.Constraints/3.3/AndConstraint.cs
r1529 r1672 26 26 using HeuristicLab.Core; 27 27 using HeuristicLab.Data; 28 using HeuristicLab.Persistence.Default.Decomposers.Storable; 28 29 29 30 namespace HeuristicLab.Constraints { … … 32 33 /// </summary> 33 34 public class AndConstraint : ConstraintBase, IViewable { 35 36 [Storable] 34 37 private ItemList<IConstraint> clauses; 35 38 /// <summary> … … 67 70 public override bool Check(IItem data) { 68 71 bool result = true; 69 for (int i = 0 ; i < clauses.Count; i++) {72 for (int i = 0; i < clauses.Count; i++) { 70 73 result = clauses[i].Check(data); 71 74 if (!result) return false; … … 96 99 return clone; 97 100 } 98 99 #region persistence100 /// <summary>101 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>.102 /// </summary>103 /// <remarks>The sub-constraints are saved as a child node with tag name104 /// <c>Clauses</c>.</remarks>105 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param>106 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param>107 /// <param name="persistedObjects">The dictionary of all already persisted objects.108 /// (Needed to avoid cycles.)</param>109 /// <returns>The saved <see cref="XmlNode"/>.</returns>110 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid,IStorable> persistedObjects) {111 XmlNode node = base.GetXmlNode(name, document, persistedObjects);112 XmlNode clausesNode = PersistenceManager.Persist("Clauses", Clauses, document, persistedObjects);113 node.AppendChild(clausesNode);114 115 return node;116 }117 118 /// <summary>119 /// Loads the persisted constraint from the specified <paramref name="node"/>.120 /// </summary>121 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for122 /// more information.</remarks>123 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param>124 /// <param name="restoredObjects">The dictionary of all already restored objects.125 /// (Needed to avoid cycles.)</param>126 public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) {127 base.Populate(node, restoredObjects);128 clauses = (ItemList<IConstraint>)PersistenceManager.Restore(node.SelectSingleNode("Clauses"), restoredObjects);129 }130 #endregion persistence131 101 } 132 102 } -
trunk/sources/HeuristicLab.Constraints/3.3/ConstraintBase.cs
r1529 r1672 25 25 using System.Xml; 26 26 using HeuristicLab.Core; 27 using HeuristicLab.Persistence.Default.Decomposers.Storable; 27 28 28 29 namespace HeuristicLab.Constraints { … … 31 32 /// </summary> 32 33 public abstract class ConstraintBase : ItemBase, IConstraint { 33 /// <inheritdoc select="summary"/> 34 35 /// <inheritdoc select="summary"/> 34 36 public virtual string Description { 35 37 get { return "No constraint description available."; } -
trunk/sources/HeuristicLab.Constraints/3.3/DoubleBoundedConstraint.cs
r1529 r1672 27 27 using HeuristicLab.Data; 28 28 using System.Globalization; 29 using HeuristicLab.Persistence.Default.Decomposers.Storable; 29 30 30 31 namespace HeuristicLab.Constraints { … … 33 34 /// </summary> 34 35 public class DoubleBoundedConstraint : ConstraintBase { 36 37 [Storable] 35 38 private double lowerBound; 36 39 /// <summary> … … 46 49 } 47 50 } 51 52 [Storable] 48 53 private bool lowerBoundIncluded; 49 54 /// <summary> … … 59 64 } 60 65 } 66 67 [Storable] 61 68 private bool lowerBoundEnabled; 62 69 /// <summary> … … 72 79 } 73 80 } 81 82 [Storable] 74 83 private double upperBound; 75 84 /// <summary> … … 85 94 } 86 95 } 96 97 [Storable] 87 98 private bool upperBoundIncluded; 88 99 /// <summary> … … 98 109 } 99 110 } 111 112 [Storable] 100 113 private bool upperBoundEnabled; 101 114 /// <summary> … … 191 204 return clone; 192 205 } 193 194 #region persistence195 /// <summary>196 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>.197 /// </summary>198 /// <remarks>The properties of the current instance are saved as attributes with special tag names.</remarks>199 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param>200 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param>201 /// <param name="persistedObjects">The dictionary of all already persisted objects.202 /// (Needed to avoid cycles.)</param>203 /// <returns>The saved <see cref="XmlNode"/>.</returns>204 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {205 XmlNode node = base.GetXmlNode(name, document, persistedObjects);206 XmlAttribute lb = document.CreateAttribute("LowerBound");207 lb.Value = LowerBound.ToString("r", CultureInfo.InvariantCulture);208 XmlAttribute lbi = document.CreateAttribute("LowerBoundIncluded");209 lbi.Value = lowerBoundIncluded.ToString();210 XmlAttribute lbe = document.CreateAttribute("LowerBoundEnabled");211 lbe.Value = lowerBoundEnabled.ToString();212 XmlAttribute ub = document.CreateAttribute("UpperBound");213 ub.Value = upperBound.ToString("r", CultureInfo.InvariantCulture);214 XmlAttribute ubi = document.CreateAttribute("UpperBoundIncluded");215 ubi.Value = upperBoundIncluded.ToString();216 XmlAttribute ube = document.CreateAttribute("UpperBoundEnabled");217 ube.Value = upperBoundEnabled.ToString();218 node.Attributes.Append(lb);219 if (!lowerBoundIncluded) node.Attributes.Append(lbi);220 if (!lowerBoundEnabled) node.Attributes.Append(lbe);221 node.Attributes.Append(ub);222 if (!upperBoundIncluded) node.Attributes.Append(ubi);223 if (!upperBoundEnabled) node.Attributes.Append(ube);224 return node;225 }226 227 /// <summary>228 /// Loads the persisted constraint from the specified <paramref name="node"/>.229 /// </summary>230 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for231 /// more information.</remarks>232 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param>233 /// <param name="restoredObjects">The dictionary of all already restored objects.234 /// (Needed to avoid cycles.)</param>235 public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {236 base.Populate(node, restoredObjects);237 lowerBound = double.Parse(node.Attributes["LowerBound"].Value, CultureInfo.InvariantCulture);238 if (node.Attributes["LowerBoundIncluded"] != null) {239 lowerBoundIncluded = bool.Parse(node.Attributes["LowerBoundIncluded"].Value);240 } else {241 lowerBoundIncluded = true;242 }243 if (node.Attributes["LowerBoundEnabled"] != null) {244 lowerBoundEnabled = bool.Parse(node.Attributes["LowerBoundEnabled"].Value);245 } else {246 lowerBoundEnabled = true;247 }248 249 upperBound = double.Parse(node.Attributes["UpperBound"].Value, CultureInfo.InvariantCulture);250 if (node.Attributes["UpperBoundIncluded"] != null) {251 upperBoundIncluded = bool.Parse(node.Attributes["UpperBoundIncluded"].Value);252 } else {253 upperBoundIncluded = true;254 }255 if (node.Attributes["UpperBoundEnabled"] != null) {256 upperBoundEnabled = bool.Parse(node.Attributes["UpperBoundEnabled"].Value);257 } else {258 upperBoundEnabled = true;259 }260 }261 #endregion262 206 } 263 207 } -
trunk/sources/HeuristicLab.Constraints/3.3/HeuristicLab.Constraints-3.3.csproj
r1671 r1672 5 5 <ProductVersion>9.0.30729</ProductVersion> 6 6 <SchemaVersion>2.0</SchemaVersion> 7 <ProjectGuid>{ FCD62C6F-4793-4593-AE9A-0BDCA256EE99}</ProjectGuid>7 <ProjectGuid>{19C1E42A-4B48-4EFD-B697-899016F1C198}</ProjectGuid> 8 8 <OutputType>Library</OutputType> 9 9 <AppDesignerFolder>Properties</AppDesignerFolder> 10 10 <RootNamespace>HeuristicLab.Constraints</RootNamespace> 11 <AssemblyName>HeuristicLab.Constraints-3. 2</AssemblyName>11 <AssemblyName>HeuristicLab.Constraints-3.3</AssemblyName> 12 12 <SignAssembly>true</SignAssembly> 13 13 <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile> … … 17 17 <UpgradeBackupLocation> 18 18 </UpgradeBackupLocation> 19 <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> 19 20 </PropertyGroup> 20 21 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> … … 34 35 <ErrorReport>prompt</ErrorReport> 35 36 <WarningLevel>4</WarningLevel> 36 <DocumentationFile>bin\Release\HeuristicLab.Constraints-3. 2.XML</DocumentationFile>37 <DocumentationFile>bin\Release\HeuristicLab.Constraints-3.3.xml</DocumentationFile> 37 38 </PropertyGroup> 38 39 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> … … 72 73 <ItemGroup> 73 74 <Reference Include="System" /> 75 <Reference Include="System.Core"> 76 <RequiredTargetFramework>3.5</RequiredTargetFramework> 77 </Reference> 74 78 <Reference Include="System.Data" /> 75 79 <Reference Include="System.Drawing" /> … … 155 159 </ItemGroup> 156 160 <ItemGroup> 157 <ProjectReference Include="..\..\HeuristicLab.Core\3.2\HeuristicLab.Core-3.2.csproj"> 158 <Project>{F43B59AB-2B8C-4570-BC1E-15592086517C}</Project> 159 <Name>HeuristicLab.Core-3.2</Name> 160 </ProjectReference> 161 <ProjectReference Include="..\..\HeuristicLab.Data\3.2\HeuristicLab.Data-3.2.csproj"> 162 <Project>{F473D9AF-3F09-4296-9F28-3C65118DAFFA}</Project> 163 <Name>HeuristicLab.Data-3.2</Name> 161 <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj"> 162 <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project> 163 <Name>HeuristicLab.Core-3.3</Name> 164 </ProjectReference> 165 <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj"> 166 <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project> 167 <Name>HeuristicLab.Data-3.3</Name> 168 </ProjectReference> 169 <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj"> 170 <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project> 171 <Name>HeuristicLab.Persistence-3.3</Name> 164 172 </ProjectReference> 165 173 <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\HeuristicLab.PluginInfrastructure.csproj"> -
trunk/sources/HeuristicLab.Constraints/3.3/HeuristicLabConstraintsPlugin.cs
r1529 r1672 29 29 /// Plugin class for HeuristicLab.Constraints plugin. 30 30 /// </summary> 31 [ClassInfo(Name = "HeuristicLab.Constraints-3.2")] 32 [PluginFile(Filename = "HeuristicLab.Constraints-3.2.dll", Filetype = PluginFileType.Assembly)] 33 [Dependency(Dependency = "HeuristicLab.Core-3.2")] 34 [Dependency(Dependency = "HeuristicLab.Data-3.2")] 35 [Dependency(Dependency = "HeuristicLab.Operators-3.2")] 31 [ClassInfo(Name = "HeuristicLab.Constraints-3.3")] 32 [PluginFile(Filename = "HeuristicLab.Constraints-3.3.dll", Filetype = PluginFileType.Assembly)] 33 [Dependency(Dependency = "HeuristicLab.Core-3.3")] 34 [Dependency(Dependency = "HeuristicLab.Data-3.3")] 35 [Dependency(Dependency = "HeuristicLab.Operators-3.3")] 36 [Dependency(Dependency = "HeurisitcLab.Persistence-3.3")] 36 37 public class HeuristicLabConstraintsPlugin : PluginBase { 37 38 } -
trunk/sources/HeuristicLab.Constraints/3.3/IntBoundedConstraint.cs
r1529 r1672 26 26 using HeuristicLab.Core; 27 27 using HeuristicLab.Data; 28 using HeuristicLab.Persistence.Default.Decomposers.Storable; 28 29 29 30 namespace HeuristicLab.Constraints { … … 32 33 /// </summary> 33 34 public class IntBoundedConstraint : ConstraintBase { 35 36 [Storable] 34 37 private int lowerBound; 35 38 /// <summary> … … 45 48 } 46 49 } 50 51 [Storable] 47 52 private bool lowerBoundIncluded; 48 53 /// <summary> … … 58 63 } 59 64 } 65 66 [Storable] 60 67 private bool lowerBoundEnabled; 61 68 /// <summary> … … 71 78 } 72 79 } 80 81 [Storable] 73 82 private int upperBound; 74 83 /// <summary> … … 84 93 } 85 94 } 95 96 [Storable] 86 97 private bool upperBoundIncluded; 87 98 /// <summary> … … 97 108 } 98 109 } 110 111 [Storable] 99 112 private bool upperBoundEnabled; 100 113 /// <summary> … … 128 141 /// <param name="low">The lower bound of the constraint.</param> 129 142 /// <param name="high">The upper bound of the constraint.</param> 130 public IntBoundedConstraint(int low, int high) : base() { 143 public IntBoundedConstraint(int low, int high) 144 : base() { 131 145 lowerBound = low; 132 146 lowerBoundIncluded = false; … … 177 191 return clone; 178 192 } 179 180 #region persistence181 /// <summary>182 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>.183 /// </summary>184 /// <remarks>The properties of the current instance are saved as attributes with special tag names.</remarks>185 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param>186 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param>187 /// <param name="persistedObjects">The dictionary of all already persisted objects.188 /// (Needed to avoid cycles.)</param>189 /// <returns>The saved <see cref="XmlNode"/>.</returns>190 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {191 XmlNode node = base.GetXmlNode(name, document, persistedObjects);192 XmlAttribute lb = document.CreateAttribute("LowerBound");193 lb.Value = LowerBound + "";194 XmlAttribute lbi = document.CreateAttribute("LowerBoundIncluded");195 lbi.Value = lowerBoundIncluded + "";196 XmlAttribute lbe = document.CreateAttribute("LowerBoundEnabled");197 lbe.Value = lowerBoundEnabled + "";198 XmlAttribute ub = document.CreateAttribute("UpperBound");199 ub.Value = upperBound + "";200 XmlAttribute ubi = document.CreateAttribute("UpperBoundIncluded");201 ubi.Value = upperBoundIncluded + "";202 XmlAttribute ube = document.CreateAttribute("UpperBoundEnabled");203 ube.Value = upperBoundEnabled + "";204 node.Attributes.Append(lb);205 if (!lowerBoundIncluded) node.Attributes.Append(lbi);206 if (!lowerBoundEnabled) node.Attributes.Append(lbe);207 node.Attributes.Append(ub);208 if (!upperBoundIncluded) node.Attributes.Append(ubi);209 if (!upperBoundEnabled) node.Attributes.Append(ube);210 return node;211 }212 213 /// <summary>214 /// Loads the persisted constraint from the specified <paramref name="node"/>.215 /// </summary>216 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for217 /// more information.</remarks>218 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param>219 /// <param name="restoredObjects">The dictionary of all already restored objects.220 /// (Needed to avoid cycles.)</param>221 public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {222 base.Populate(node, restoredObjects);223 lowerBound = int.Parse(node.Attributes["LowerBound"].Value);224 if (node.Attributes["LowerBoundIncluded"] != null) {225 lowerBoundIncluded = bool.Parse(node.Attributes["LowerBoundIncluded"].Value);226 } else {227 lowerBoundIncluded = true;228 }229 if (node.Attributes["LowerBoundEnabled"] != null) {230 lowerBoundEnabled = bool.Parse(node.Attributes["LowerBoundEnabled"].Value);231 } else {232 lowerBoundEnabled = true;233 }234 235 upperBound = int.Parse(node.Attributes["UpperBound"].Value);236 if (node.Attributes["UpperBoundIncluded"] != null) {237 upperBoundIncluded = bool.Parse(node.Attributes["UpperBoundIncluded"].Value);238 } else {239 upperBoundIncluded = true;240 }241 if (node.Attributes["UpperBoundEnabled"] != null) {242 upperBoundEnabled = bool.Parse(node.Attributes["UpperBoundEnabled"].Value);243 } else {244 upperBoundEnabled = true;245 }246 }247 #endregion248 193 } 249 194 } -
trunk/sources/HeuristicLab.Constraints/3.3/IsIntegerConstraint.cs
r1529 r1672 25 25 using HeuristicLab.Core; 26 26 using HeuristicLab.Data; 27 using HeuristicLab.Persistence.Default.Decomposers.Storable; 27 28 28 29 namespace HeuristicLab.Constraints { … … 30 31 /// Constraint that allows only integer values. 31 32 /// </summary> 32 public class IsIntegerConstraint : ConstraintBase{ 33 [EmptyStorableClass] 34 public class IsIntegerConstraint : ConstraintBase { 33 35 /// <inheritdoc select="summary"/> 34 36 public override string Description { … … 43 45 public override bool Check(IItem item) { 44 46 // ConstrainedIntData is always integer => just return true 45 if (item is ConstrainedIntData)47 if (item is ConstrainedIntData) 46 48 return true; 47 49 48 50 // if we have an item of ConstrainedDoubleData then we check if it is integer or not 49 if (item is ConstrainedDoubleData) {51 if (item is ConstrainedDoubleData) { 50 52 ConstrainedDoubleData d = (ConstrainedDoubleData)item; 51 if (d.Data == Math.Truncate(d.Data)) {53 if (d.Data == Math.Truncate(d.Data)) { 52 54 return true; 53 55 } else { -
trunk/sources/HeuristicLab.Constraints/3.3/ItemTypeConstraint.cs
r1529 r1672 26 26 using HeuristicLab.Core; 27 27 using HeuristicLab.Data; 28 using HeuristicLab.Persistence.Default.Decomposers.Storable; 28 29 29 30 namespace HeuristicLab.Constraints { … … 34 35 /// the type and not the <see cref="ConstrainedItemList"/> itself.</remarks> 35 36 public class ItemTypeConstraint : ConstraintBase { 37 38 [Storable] 36 39 private Type type; 37 40 /// <summary> … … 96 99 } 97 100 98 #region clone & persistence99 101 /// <summary> 100 102 /// Clones the current instance (deep clone). … … 107 109 return clone; 108 110 } 109 110 /// <summary>111 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>.112 /// </summary>113 /// <remarks>The type of the current instance is saved as attribute with tag name <c>ItemType</c>.</remarks>114 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param>115 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param>116 /// <param name="persistedObjects">The dictionary of all already persisted objects.117 /// (Needed to avoid cycles.)</param>118 /// <returns>The saved <see cref="XmlNode"/>.</returns>119 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {120 XmlNode node = base.GetXmlNode(name, document, persistedObjects);121 XmlAttribute itemTypeAttribute = document.CreateAttribute("ItemType");122 itemTypeAttribute.Value = PersistenceManager.BuildTypeString(Type);123 node.Attributes.Append(itemTypeAttribute);124 return node;125 }126 127 /// <summary>128 /// Loads the persisted constraint from the specified <paramref name="node"/>.129 /// </summary>130 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for131 /// more information.</remarks>132 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param>133 /// <param name="restoredObjects">The dictionary of all already restored objects.134 /// (Needed to avoid cycles.)</param>135 public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {136 base.Populate(node, restoredObjects);137 XmlAttribute itemTypeAttribute = node.Attributes["ItemType"];138 type = Type.GetType(itemTypeAttribute.Value);139 }140 #endregion141 111 } 142 112 } -
trunk/sources/HeuristicLab.Constraints/3.3/NotConstraint.cs
r1529 r1672 26 26 using HeuristicLab.Core; 27 27 using HeuristicLab.Data; 28 using HeuristicLab.Persistence.Default.Decomposers.Storable; 28 29 29 30 namespace HeuristicLab.Constraints { … … 32 33 /// </summary> 33 34 public class NotConstraint : ConstraintBase { 35 36 [Storable] 34 37 private ConstraintBase subConstraint; 35 38 /// <summary> … … 88 91 return clone; 89 92 } 90 91 #region persistence92 /// <summary>93 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>.94 /// </summary>95 /// <remarks>The sub-constraint is saved as a child node with tag name96 /// <c>SubConstraint</c>.</remarks>97 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param>98 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param>99 /// <param name="persistedObjects">The dictionary of all already persisted objects.100 /// (Needed to avoid cycles.)</param>101 /// <returns>The saved <see cref="XmlNode"/>.</returns>102 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {103 XmlNode node = base.GetXmlNode(name, document, persistedObjects);104 if (subConstraint != null) {105 XmlNode sub = PersistenceManager.Persist("SubConstraint", SubConstraint, document, persistedObjects);106 node.AppendChild(sub);107 }108 return node;109 }110 111 /// <summary>112 /// Loads the persisted constraint from the specified <paramref name="node"/>.113 /// </summary>114 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for115 /// more information.</remarks>116 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param>117 /// <param name="restoredObjects">The dictionary of all already restored objects.118 /// (Needed to avoid cycles.)</param>119 public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {120 base.Populate(node, restoredObjects);121 XmlNode subNode = node.SelectSingleNode("SubConstraint");122 if(subNode!=null)123 subConstraint = (ConstraintBase)PersistenceManager.Restore(subNode, restoredObjects);124 }125 #endregion126 93 } 127 94 } -
trunk/sources/HeuristicLab.Constraints/3.3/NumberOfSubOperatorsConstraint.cs
r1529 r1672 27 27 using HeuristicLab.Data; 28 28 using System.Xml; 29 using HeuristicLab.Persistence.Default.Decomposers.Storable; 29 30 30 31 namespace HeuristicLab.Constraints { … … 33 34 /// </summary> 34 35 public class NumberOfSubOperatorsConstraint : ConstraintBase { 36 37 [Storable] 35 38 private IntData minOperators; 39 40 [Storable] 36 41 private IntData maxOperators; 37 42 … … 59 64 /// </summary> 60 65 public NumberOfSubOperatorsConstraint() 61 : this(0, 0) {66 : this(0, 0) { 62 67 } 63 68 … … 68 73 /// <param name="min">The minimum number of sub-operators.</param> 69 74 /// <param name="max">The maximum number of sub-operators.</param> 70 public NumberOfSubOperatorsConstraint(int min, int max) : base() { 75 public NumberOfSubOperatorsConstraint(int min, int max) 76 : base() { 71 77 minOperators = new IntData(min); 72 78 maxOperators = new IntData(max); … … 106 112 return new NumberOfSubOperatorsConstraintView(this); 107 113 } 108 109 #region persistence110 /// <summary>111 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>.112 /// </summary>113 /// <remarks>The minimum and the maximum number of sub-operators are saved as child nodes with tag114 /// names <c>min</c> and <c>max</c>.</remarks>115 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param>116 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param>117 /// <param name="persistedObjects">The dictionary of all already persisted objects.118 /// (Needed to avoid cycles.)</param>119 /// <returns>The saved <see cref="XmlNode"/>.</returns>120 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid,IStorable> persistedObjects) {121 XmlNode node = base.GetXmlNode(name, document, persistedObjects);122 XmlNode minNode = PersistenceManager.Persist("min", minOperators, document, persistedObjects);123 XmlNode maxNode = PersistenceManager.Persist("max", maxOperators, document, persistedObjects);124 node.AppendChild(minNode);125 node.AppendChild(maxNode);126 return node;127 }128 129 /// <summary>130 /// Loads the persisted constraint from the specified <paramref name="node"/>.131 /// </summary>132 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for133 /// more information.</remarks>134 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param>135 /// <param name="restoredObjects">The dictionary of all already restored objects.136 /// (Needed to avoid cycles.)</param>137 public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) {138 base.Populate(node, restoredObjects);139 minOperators = (IntData)PersistenceManager.Restore(node.SelectSingleNode("min"), restoredObjects);140 maxOperators = (IntData)PersistenceManager.Restore(node.SelectSingleNode("max"), restoredObjects);141 }142 #endregion persistence143 144 114 } 145 115 } -
trunk/sources/HeuristicLab.Constraints/3.3/OrConstraint.cs
r1529 r1672 26 26 using HeuristicLab.Core; 27 27 using HeuristicLab.Data; 28 using HeuristicLab.Persistence.Default.Decomposers.Storable; 28 29 29 30 namespace HeuristicLab.Constraints { … … 32 33 /// </summary> 33 34 public class OrConstraint : ConstraintBase, IViewable { 35 36 [Storable] 34 37 private ItemList<IConstraint> clauses; 35 38 /// <summary> … … 67 70 public override bool Check(IItem data) { 68 71 bool result = false; 69 for (int i = 0 ; i < clauses.Count; i++) {72 for (int i = 0; i < clauses.Count; i++) { 70 73 result = clauses[i].Check(data); 71 74 if (result) return true; … … 96 99 return clone; 97 100 } 98 99 #region persistence100 /// <summary>101 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>.102 /// </summary>103 /// <remarks>The sub-constraints are saved as a child node with tag name104 /// <c>Clauses</c>.</remarks>105 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param>106 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param>107 /// <param name="persistedObjects">The dictionary of all already persisted objects.108 /// (Needed to avoid cycles.)</param>109 /// <returns>The saved <see cref="XmlNode"/>.</returns>110 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid,IStorable> persistedObjects) {111 XmlNode node = base.GetXmlNode(name, document, persistedObjects);112 XmlNode clausesNode = PersistenceManager.Persist("Clauses", Clauses, document, persistedObjects);113 node.AppendChild(clausesNode);114 115 return node;116 }117 118 /// <summary>119 /// Loads the persisted constraint from the specified <paramref name="node"/>.120 /// </summary>121 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for122 /// more information.</remarks>123 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param>124 /// <param name="restoredObjects">The dictionary of all already restored objects.125 /// (Needed to avoid cycles.)</param>126 public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) {127 base.Populate(node, restoredObjects);128 clauses = (ItemList<IConstraint>)PersistenceManager.Restore(node.SelectSingleNode("Clauses"), restoredObjects);129 }130 #endregion persistence131 101 } 132 102 } -
trunk/sources/HeuristicLab.Constraints/3.3/Properties/AssemblyInfo.frame
r581 r1672 54 54 // You can specify all the values or you can default the Revision and Build Numbers 55 55 // by using the '*' as shown below: 56 [assembly: AssemblyVersion("3. 2.0.$WCREV$")]57 [assembly: AssemblyFileVersion("3. 2.0.$WCREV$")]56 [assembly: AssemblyVersion("3.3.0.$WCREV$")] 57 [assembly: AssemblyFileVersion("3.3.0.$WCREV$")] 58 58 [assembly: AssemblyBuildDate("$WCNOW$")] -
trunk/sources/HeuristicLab.Constraints/3.3/SubOperatorsTypeConstraint.cs
r1529 r1672 27 27 using System.Diagnostics; 28 28 using System.Xml; 29 using HeuristicLab.Persistence.Default.Decomposers.Storable; 29 30 30 31 namespace HeuristicLab.Constraints { … … 33 34 /// </summary> 34 35 public class SubOperatorTypeConstraint : ConstraintBase { 36 37 [Storable] 35 38 private IntData subOperatorIndex; 36 39 /// <summary> … … 41 44 } 42 45 46 [Storable] 43 47 private List<IOperator> subOperators; 44 48 /// <summary> … … 70 74 /// </summary> 71 75 /// <param name="index">The index of the sub-operator.</param> 72 public SubOperatorTypeConstraint(int index) : base() { 76 public SubOperatorTypeConstraint(int index) 77 : base() { 73 78 subOperatorIndex = new IntData(index); 74 79 subOperators = new List<IOperator>(); … … 81 86 /// <param name="op">The operator to add.</param> 82 87 public void AddOperator(IOperator op) { 83 if (!subOperators.Contains(op)) {88 if (!subOperators.Contains(op)) { 84 89 subOperators.Add(op); 85 90 FireChanged(); … … 93 98 /// <param name="op">The operator to remove.</param> 94 99 public void RemoveOperator(IOperator op) { 95 if (subOperators.Contains(op)) {100 if (subOperators.Contains(op)) { 96 101 subOperators.Remove(op); 97 102 FireChanged(); … … 113 118 public override bool Check(IItem data) { 114 119 IOperator op = data as IOperator; 115 if (data == null) return false;120 if (data == null) return false; 116 121 117 if (op.SubOperators.Count <= subOperatorIndex.Data) {122 if (op.SubOperators.Count <= subOperatorIndex.Data) { 118 123 return false; 119 124 } … … 132 137 clonedObjects.Add(Guid, clone); 133 138 clone.subOperatorIndex.Data = subOperatorIndex.Data; 134 foreach (IOperator op in subOperators) {139 foreach (IOperator op in subOperators) { 135 140 clone.AddOperator((IOperator)Auxiliary.Clone(op, clonedObjects)); 136 141 } … … 146 151 return new SubOperatorsTypeConstraintView(this); 147 152 } 148 149 #region persistence150 /// <summary>151 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>.152 /// </summary>153 /// <remarks>The index and the list of sub-operators are saved as child nodes with tag names154 /// <c>SubOperatorIndex</c> and <c>AllowedSubOperators</c>.</remarks>155 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param>156 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param>157 /// <param name="persistedObjects">The dictionary of all already persisted objects.158 /// (Needed to avoid cycles.)</param>159 /// <returns>The saved <see cref="XmlNode"/>.</returns>160 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {161 XmlNode node = base.GetXmlNode(name, document, persistedObjects);162 XmlNode indexNode = PersistenceManager.Persist("SubOperatorIndex", subOperatorIndex, document, persistedObjects);163 node.AppendChild(indexNode);164 XmlNode listNode = document.CreateNode(XmlNodeType.Element, "AllowedSubOperators", document.NamespaceURI);165 foreach(IOperator op in subOperators) {166 XmlNode opNode = PersistenceManager.Persist(op, document, persistedObjects);167 listNode.AppendChild(opNode);168 }169 node.AppendChild(listNode);170 return node;171 }172 173 /// <summary>174 /// Loads the persisted constraint from the specified <paramref name="node"/>.175 /// </summary>176 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for177 /// more information.</remarks>178 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param>179 /// <param name="restoredObjects">The dictionary of all already restored objects.180 /// (Needed to avoid cycles.)</param>181 public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {182 base.Populate(node, restoredObjects);183 subOperatorIndex = (IntData)PersistenceManager.Restore(node.SelectSingleNode("SubOperatorIndex"), restoredObjects);184 subOperators = new List<IOperator>();185 foreach(XmlNode childNode in node.SelectSingleNode("AllowedSubOperators").ChildNodes) {186 subOperators.Add((IOperator)PersistenceManager.Restore(childNode, restoredObjects));187 }188 }189 #endregion persistence190 153 } 191 154 } -
trunk/sources/HeuristicLab.Constraints/3.3/VariableComparisonConstraint.cs
r1529 r1672 26 26 using HeuristicLab.Core; 27 27 using HeuristicLab.Data; 28 using HeuristicLab.Persistence.Default.Decomposers.Storable; 28 29 29 30 namespace HeuristicLab.Constraints { … … 32 33 /// </summary> 33 34 public class VariableComparisonConstraint : ConstraintBase { 35 36 [Storable] 34 37 private StringData leftVarName; 35 38 /// <summary> … … 41 44 } 42 45 46 [Storable] 43 47 private StringData rightVarName; 44 48 /// <summary> … … 50 54 } 51 55 56 [Storable] 52 57 private IntData comparer; 53 58 /// <summary> … … 125 130 } 126 131 127 #region clone & persistence128 132 /// <summary> 129 133 /// Clones the current instance (deep clone). … … 141 145 return clone; 142 146 } 143 144 /// <summary>145 /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>.146 /// </summary>147 /// <remarks>The variable names and the comparer are saved as child nodes with tag names148 /// <c>LeftVarName</c>, <c>RightVarName</c> and <c>Comparer</c>.</remarks>149 /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param>150 /// <param name="document">The <see cref="XmlDocument"/> where the data is saved.</param>151 /// <param name="persistedObjects">The dictionary of all already persisted objects.152 /// (Needed to avoid cycles.)</param>153 /// <returns>The saved <see cref="XmlNode"/>.</returns>154 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {155 XmlNode node = base.GetXmlNode(name, document, persistedObjects);156 XmlNode leftNode = PersistenceManager.Persist("LeftVarName", LeftVarName, document, persistedObjects);157 node.AppendChild(leftNode);158 XmlNode rightNode = PersistenceManager.Persist("RightVarName", RightVarName, document, persistedObjects);159 node.AppendChild(rightNode);160 XmlNode comparerNode = PersistenceManager.Persist("Comparer", Comparer, document, persistedObjects);161 node.AppendChild(comparerNode);162 return node;163 }164 165 /// <summary>166 /// Loads the persisted constraint from the specified <paramref name="node"/>.167 /// </summary>168 /// <remarks>The constraint must be saved in a specific way, see <see cref="GetXmlNode"/> for169 /// more information.</remarks>170 /// <param name="node">The <see cref="XmlNode"/> where the instance is saved.</param>171 /// <param name="restoredObjects">The dictionary of all already restored objects.172 /// (Needed to avoid cycles.)</param>173 public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {174 base.Populate(node, restoredObjects);175 leftVarName = (StringData)PersistenceManager.Restore(node.SelectSingleNode("LeftVarName"), restoredObjects);176 rightVarName = (StringData)PersistenceManager.Restore(node.SelectSingleNode("RightVarName"), restoredObjects);177 comparer = (IntData)PersistenceManager.Restore(node.SelectSingleNode("Comparer"), restoredObjects);178 }179 #endregion180 147 } 181 148 } -
trunk/sources/HeuristicLab.sln
r1669 r1672 170 170 EndProject 171 171 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Data-3.3", "HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj", "{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}" 172 EndProject 173 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Constraints-3.3", "HeuristicLab.Constraints\3.3\HeuristicLab.Constraints-3.3.csproj", "{19C1E42A-4B48-4EFD-B697-899016F1C198}" 172 174 EndProject 173 175 Global … … 2540 2542 {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Visualization Debug|x86.ActiveCfg = Debug|x86 2541 2543 {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Visualization Debug|x86.Build.0 = Debug|x86 2544 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.CEDMA Debug|Any CPU.ActiveCfg = Debug|Any CPU 2545 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.CEDMA Debug|Any CPU.Build.0 = Debug|Any CPU 2546 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.CEDMA Debug|x64.ActiveCfg = Debug|x64 2547 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.CEDMA Debug|x64.Build.0 = Debug|x64 2548 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.CEDMA Debug|x86.ActiveCfg = Debug|x86 2549 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.CEDMA Debug|x86.Build.0 = Debug|x86 2550 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 2551 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|Any CPU.Build.0 = Debug|Any CPU 2552 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x64.ActiveCfg = Debug|x64 2553 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x64.Build.0 = Debug|x64 2554 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x86.ActiveCfg = Debug|x86 2555 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x86.Build.0 = Debug|x86 2556 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.GP Debug|Any CPU.ActiveCfg = Debug|Any CPU 2557 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.GP Debug|Any CPU.Build.0 = Debug|Any CPU 2558 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.GP Debug|x64.ActiveCfg = Debug|x64 2559 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.GP Debug|x64.Build.0 = Debug|x64 2560 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.GP Debug|x86.ActiveCfg = Debug|x86 2561 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.GP Debug|x86.Build.0 = Debug|x86 2562 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|Any CPU.ActiveCfg = Release|Any CPU 2563 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|Any CPU.Build.0 = Release|Any CPU 2564 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x64.ActiveCfg = Release|x64 2565 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x64.Build.0 = Release|x64 2566 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x86.ActiveCfg = Release|x86 2567 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x86.Build.0 = Release|x86 2568 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Visualization Debug|Any CPU.ActiveCfg = Debug|Any CPU 2569 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Visualization Debug|Any CPU.Build.0 = Debug|Any CPU 2570 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Visualization Debug|x64.ActiveCfg = Debug|x64 2571 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Visualization Debug|x64.Build.0 = Debug|x64 2572 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Visualization Debug|x86.ActiveCfg = Debug|x86 2573 {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Visualization Debug|x86.Build.0 = Debug|x86 2574 {19C1E42A-4B48-4EFD-B697-899016F1C198}.CEDMA Debug|Any CPU.ActiveCfg = Debug|Any CPU 2575 {19C1E42A-4B48-4EFD-B697-899016F1C198}.CEDMA Debug|Any CPU.Build.0 = Debug|Any CPU 2576 {19C1E42A-4B48-4EFD-B697-899016F1C198}.CEDMA Debug|x64.ActiveCfg = Debug|x64 2577 {19C1E42A-4B48-4EFD-B697-899016F1C198}.CEDMA Debug|x64.Build.0 = Debug|x64 2578 {19C1E42A-4B48-4EFD-B697-899016F1C198}.CEDMA Debug|x86.ActiveCfg = Debug|x86 2579 {19C1E42A-4B48-4EFD-B697-899016F1C198}.CEDMA Debug|x86.Build.0 = Debug|x86 2580 {19C1E42A-4B48-4EFD-B697-899016F1C198}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 2581 {19C1E42A-4B48-4EFD-B697-899016F1C198}.Debug|Any CPU.Build.0 = Debug|Any CPU 2582 {19C1E42A-4B48-4EFD-B697-899016F1C198}.Debug|x64.ActiveCfg = Debug|x64 2583 {19C1E42A-4B48-4EFD-B697-899016F1C198}.Debug|x64.Build.0 = Debug|x64 2584 {19C1E42A-4B48-4EFD-B697-899016F1C198}.Debug|x86.ActiveCfg = Debug|x86 2585 {19C1E42A-4B48-4EFD-B697-899016F1C198}.Debug|x86.Build.0 = Debug|x86 2586 {19C1E42A-4B48-4EFD-B697-899016F1C198}.GP Debug|Any CPU.ActiveCfg = Debug|Any CPU 2587 {19C1E42A-4B48-4EFD-B697-899016F1C198}.GP Debug|Any CPU.Build.0 = Debug|Any CPU 2588 {19C1E42A-4B48-4EFD-B697-899016F1C198}.GP Debug|x64.ActiveCfg = Debug|x64 2589 {19C1E42A-4B48-4EFD-B697-899016F1C198}.GP Debug|x64.Build.0 = Debug|x64 2590 {19C1E42A-4B48-4EFD-B697-899016F1C198}.GP Debug|x86.ActiveCfg = Debug|x86 2591 {19C1E42A-4B48-4EFD-B697-899016F1C198}.GP Debug|x86.Build.0 = Debug|x86 2592 {19C1E42A-4B48-4EFD-B697-899016F1C198}.Release|Any CPU.ActiveCfg = Release|Any CPU 2593 {19C1E42A-4B48-4EFD-B697-899016F1C198}.Release|Any CPU.Build.0 = Release|Any CPU 2594 {19C1E42A-4B48-4EFD-B697-899016F1C198}.Release|x64.ActiveCfg = Release|x64 2595 {19C1E42A-4B48-4EFD-B697-899016F1C198}.Release|x64.Build.0 = Release|x64 2596 {19C1E42A-4B48-4EFD-B697-899016F1C198}.Release|x86.ActiveCfg = Release|x86 2597 {19C1E42A-4B48-4EFD-B697-899016F1C198}.Release|x86.Build.0 = Release|x86 2598 {19C1E42A-4B48-4EFD-B697-899016F1C198}.Visualization Debug|Any CPU.ActiveCfg = Debug|Any CPU 2599 {19C1E42A-4B48-4EFD-B697-899016F1C198}.Visualization Debug|Any CPU.Build.0 = Debug|Any CPU 2600 {19C1E42A-4B48-4EFD-B697-899016F1C198}.Visualization Debug|x64.ActiveCfg = Debug|x64 2601 {19C1E42A-4B48-4EFD-B697-899016F1C198}.Visualization Debug|x64.Build.0 = Debug|x64 2602 {19C1E42A-4B48-4EFD-B697-899016F1C198}.Visualization Debug|x86.ActiveCfg = Debug|x86 2603 {19C1E42A-4B48-4EFD-B697-899016F1C198}.Visualization Debug|x86.Build.0 = Debug|x86 2542 2604 EndGlobalSection 2543 2605 GlobalSection(SolutionProperties) = preSolution
Note: See TracChangeset
for help on using the changeset viewer.