Removed untyped contructor from ComponentRegistration and add a protected setter.
[castle.git] / ActiveRecord / Castle.ActiveRecord / Framework / Internal / IVisitor.cs
blob4b1552d745bac4b0607a89db3e0bacce900f7252
1 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle.ActiveRecord.Framework.Internal
17 /// <summary>
18 /// For implementign the visitor pattern.
19 /// </summary>
20 public interface IVisitor
22 /// <summary>
23 /// Visits the top level of the model.
24 /// </summary>
25 /// <param name="model">The model.</param>
26 void VisitModel(ActiveRecordModel model);
28 /// <summary>
29 /// Visits the primary key.
30 /// </summary>
31 /// <param name="model">The model.</param>
32 void VisitPrimaryKey(PrimaryKeyModel model);
34 /// <summary>
35 /// Visits the composite primary key.
36 /// </summary>
37 /// <param name="model">The model.</param>
38 void VisitCompositePrimaryKey(CompositeKeyModel model);
40 /// <summary>
41 /// Visits the has many to any association
42 /// </summary>
43 /// <param name="model">The model.</param>
44 void VisitHasManyToAny(HasManyToAnyModel model);
46 /// <summary>
47 /// Visits any.
48 /// </summary>
49 /// <param name="model">The model.</param>
50 void VisitAny(AnyModel model);
52 /// <summary>
53 /// Visits the property.
54 /// </summary>
55 /// <param name="model">The model.</param>
56 void VisitProperty(PropertyModel model);
58 /// <summary>
59 /// Visits the field.
60 /// </summary>
61 /// <param name="model">The model.</param>
62 void VisitField(FieldModel model);
64 /// <summary>
65 /// Visits the component parent reference
66 /// </summary>
67 /// <param name="referenceModel">The model.</param>
68 void VisitNestedParentReference(NestedParentReferenceModel referenceModel);
70 /// <summary>
71 /// Visits the version.
72 /// </summary>
73 /// <param name="model">The model.</param>
74 void VisitVersion(VersionModel model);
76 /// <summary>
77 /// Visits the timestamp.
78 /// </summary>
79 /// <param name="model">The model.</param>
80 void VisitTimestamp(TimestampModel model);
82 /// <summary>
83 /// Visits the key.
84 /// </summary>
85 /// <param name="model">The model.</param>
86 void VisitKey(KeyModel model);
88 /// <summary>
89 /// Visits the belongs to association
90 /// </summary>
91 /// <param name="model">The model.</param>
92 void VisitBelongsTo(BelongsToModel model);
94 /// <summary>
95 /// Visits the has many association
96 /// </summary>
97 /// <param name="model">The model.</param>
98 void VisitHasMany(HasManyModel model);
100 /// <summary>
101 /// Visits the one to one association
102 /// </summary>
103 /// <param name="model">The model.</param>
104 void VisitOneToOne(OneToOneModel model);
106 /// <summary>
107 /// Visits the has and belongs to many association
108 /// </summary>
109 /// <param name="model">The model.</param>
110 void VisitHasAndBelongsToMany(HasAndBelongsToManyModel model);
112 /// <summary>
113 /// Visits the hilo strategy
114 /// </summary>
115 /// <param name="model">The model.</param>
116 void VisitHilo(HiloModel model);
118 /// <summary>
119 /// Visits the nested (component) model
120 /// </summary>
121 /// <param name="model">The model.</param>
122 void VisitNested(NestedModel model);
124 /// <summary>
125 /// Visits the collection ID.
126 /// </summary>
127 /// <param name="model">The model.</param>
128 void VisitCollectionID(CollectionIDModel model);
130 /// <summary>
131 /// Visits the has many to any configuration
132 /// </summary>
133 /// <param name="hasManyToAnyConfigModel">The has many to any config model.</param>
134 void VisitHasManyToAnyConfig(HasManyToAnyModel.Config hasManyToAnyConfigModel);
136 /// <summary>
137 /// Visits the import statement
138 /// </summary>
139 /// <param name="model">The model.</param>
140 void VisitImport(ImportModel model);
142 /// <summary>
143 /// Visits the dependent object model
144 /// </summary>
145 /// <param name="model">The model.</param>
146 void VisitDependentObject(DependentObjectModel model);
148 /// <summary>
149 /// Visits the custom composite user type.
150 /// </summary>
151 /// <param name="model">The model.</param>
152 void VisitCompositeUserType(CompositeUserTypeModel model);