001: // THIS SOFTWARE IS PROVIDED BY SOFTARIS PTY.LTD. AND OTHER METABOSS
002: // CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
003: // BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
004: // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SOFTARIS PTY.LTD.
005: // OR OTHER METABOSS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
006: // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
007: // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
008: // OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
009: // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
010: // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
011: // EVEN IF SOFTARIS PTY.LTD. OR OTHER METABOSS CONTRIBUTORS ARE ADVISED OF THE
012: // POSSIBILITY OF SUCH DAMAGE.
013: //
014: // Copyright 2000-2005 © Softaris Pty.Ltd. All Rights Reserved.
015: package com.metaboss.applications.designstudio.userobjects;
016:
017: import com.metaboss.applications.designstudio.Application;
018: import com.metaboss.applications.designstudio.BaseUserObject;
019: import com.metaboss.sdlctools.models.metabossmodel.ModelElement;
020: import com.metaboss.sdlctools.models.metabossmodel.ModelElementAttachment;
021: import com.metaboss.sdlctools.models.metabossmodel.ModelElementConstraint;
022: import com.metaboss.sdlctools.models.metabossmodel.ModelElementTag;
023: import com.metaboss.sdlctools.models.metabossmodel.datadictionarymodel.DataDictionary;
024: import com.metaboss.sdlctools.models.metabossmodel.datadictionarymodel.DataType;
025: import com.metaboss.sdlctools.models.metabossmodel.datadictionarymodel.Namespace;
026: import com.metaboss.sdlctools.models.metabossmodel.datadictionarymodel.Property;
027: import com.metaboss.sdlctools.models.metabossmodel.datadictionarymodel.PropertyDescriptor;
028: import com.metaboss.sdlctools.models.metabossmodel.datadictionarymodel.Structure;
029: import com.metaboss.sdlctools.models.metabossmodel.datadictionarymodel.StructureField;
030: import com.metaboss.sdlctools.models.metabossmodel.datadictionarymodel.TypeTemplate;
031: import com.metaboss.sdlctools.models.metabossmodel.designlibrarymodel.DesignLibrary;
032: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.Enterprise;
033: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.Event;
034: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.EventDataField;
035: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.EventMessageField;
036: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.EventSubscription;
037: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.EventSubscriptionOperation;
038: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.Message;
039: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.MessageField;
040: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.Operation;
041: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.OperationInputField;
042: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.OperationOutputField;
043: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.OperationOutputMessage;
044: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.Service;
045: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.Servicemodule;
046: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.System;
047: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.SystemDependency;
048: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.Association;
049: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.AssociationRole;
050: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.Attribute;
051: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.Domain;
052: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.Entity;
053: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.PrimaryKeyElement;
054: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.Report;
055: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.ReportInputField;
056: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.ReportOutputElement;
057: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.ReportOutputEntity;
058: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.ReportOutputField;
059: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.Selector;
060: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.SelectorInputField;
061: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.ServiceImplementation;
062: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.domainimplementationmodel.DomainRelationalStorageDefinition;
063: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.domainimplementationmodel.RelationalAssociationTable;
064: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.domainimplementationmodel.RelationalEntityTable;
065: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.domainimplementationmodel.RelationalEntityTableAttributeColumn;
066: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemimplementationmodel.domainimplementationmodel.RelationalEntityTableReferenceColumn;
067: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemusagemodel.Actor;
068: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemusagemodel.UsageSpecification;
069: import com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemusagemodel.UseCase;
070: import com.metaboss.sdlctools.models.metabossmodel.statemachinemodel.State;
071: import com.metaboss.sdlctools.models.metabossmodel.statemachinemodel.StateMachine;
072: import com.metaboss.sdlctools.models.metabossmodel.statemachinemodel.Transition;
073: import com.metaboss.sdlctools.models.metabossmodel.technologylibrarymodel.RelationalStorageTechnology;
074: import com.metaboss.sdlctools.models.metabossmodel.technologylibrarymodel.TechnologyLibrary;
075: import com.metaboss.sdlctools.models.metabossmodel.visualmodel.DomainEntitiesDiagram;
076: import com.metaboss.sdlctools.models.metabossmodel.visualmodel.EnterpriseSystemsDiagram;
077: import com.metaboss.sdlctools.models.metabossmodel.visualmodel.EntityStateDiagram;
078: import com.metaboss.sdlctools.models.metabossmodel.visualmodel.ServicemoduleStructuresDiagram;
079: import com.metaboss.sdlctools.models.metabossmodel.visualmodel.SystemUseCasesDiagram;
080:
081: /* UserObjects factory */
082:
083: public class UserObjectFactory {
084: public static BaseUserObject createUserObject(ModelElement pElement) {
085: BaseUserObject lResult = null;
086: if (pElement != null) {
087: if (pElement instanceof Application)
088: lResult = new ApplicationUserObject(pElement);
089: else if (pElement instanceof AssociationRole)
090: lResult = new AssociationRoleUserObject(
091: (AssociationRole) pElement);
092: else if (pElement instanceof Association)
093: lResult = new AssociationUserObject(
094: (Association) pElement);
095: else if (pElement instanceof Attribute)
096: lResult = new AttributeUserObject((Attribute) pElement);
097: else if (pElement instanceof DataDictionary)
098: lResult = new DataDictionaryUserObject(
099: (DataDictionary) pElement);
100: else if (pElement instanceof DataType)
101: lResult = new DataTypeUserObject((DataType) pElement);
102: else if (pElement instanceof DesignLibrary)
103: lResult = new DesignLibUserObject(
104: (DesignLibrary) pElement);
105: else if (pElement instanceof Domain)
106: lResult = new DomainUserObject((Domain) pElement);
107: else if (pElement instanceof Enterprise)
108: lResult = new EnterpriseUserObject(
109: (Enterprise) pElement);
110: else if (pElement instanceof Entity)
111: lResult = new EntityUserObject((Entity) pElement);
112: else if (pElement instanceof MessageField)
113: lResult = new MessageFieldUserObject(
114: (MessageField) pElement);
115: else if (pElement instanceof Message)
116: lResult = new MessageUserObject((Message) pElement);
117: else if (pElement instanceof ModelElementConstraint)
118: lResult = new ModelElementConstraintUserObject(
119: (ModelElementConstraint) pElement);
120: else if (pElement instanceof ModelElementTag)
121: lResult = new ModelElementTagUserObject(
122: (ModelElementTag) pElement);
123: else if (pElement instanceof ModelElementAttachment)
124: lResult = new ModelElementAttachmentUserObject(
125: (ModelElementAttachment) pElement);
126: else if (pElement instanceof Namespace)
127: lResult = new NamespaceUserObject((Namespace) pElement);
128: else if (pElement instanceof OperationInputField)
129: lResult = new OperationInputFieldUserObject(
130: (OperationInputField) pElement);
131: else if (pElement instanceof OperationOutputField)
132: lResult = new OperationOutputFieldUserObject(
133: (OperationOutputField) pElement);
134: else if (pElement instanceof OperationOutputMessage)
135: lResult = new OperationOutputMessageUserObject(
136: (OperationOutputMessage) pElement);
137: else if (pElement instanceof Operation)
138: lResult = new OperationUserObject((Operation) pElement);
139: else if (pElement instanceof ReportOutputElement)
140: lResult = new OutputElementUserObject(
141: (ReportOutputElement) pElement);
142: else if (pElement instanceof PrimaryKeyElement)
143: lResult = new PrimaryKeyElementUserObject(
144: (PrimaryKeyElement) pElement);
145: else if (pElement instanceof PropertyDescriptor)
146: lResult = new PropertyDescriptorUserObject(
147: (PropertyDescriptor) pElement);
148: else if (pElement instanceof Property)
149: lResult = new PropertyUserObject((Property) pElement);
150: else if (pElement instanceof RelationalAssociationTable)
151: lResult = new RelationalAssociationTableUserObject(
152: (RelationalAssociationTable) pElement);
153: else if (pElement instanceof RelationalEntityTableAttributeColumn)
154: lResult = new RelationalEntityTableAttributeColumnUserObject(
155: (RelationalEntityTableAttributeColumn) pElement);
156: else if (pElement instanceof RelationalEntityTableReferenceColumn)
157: lResult = new RelationalEntityTableReferenceColumnUserObject(
158: (RelationalEntityTableReferenceColumn) pElement);
159: else if (pElement instanceof RelationalEntityTable)
160: lResult = new RelationalEntityTableUserObject(
161: (RelationalEntityTable) pElement);
162: else if (pElement instanceof DomainRelationalStorageDefinition)
163: lResult = new RelationalStorageDefinitionUserObject(
164: (DomainRelationalStorageDefinition) pElement);
165: else if (pElement instanceof RelationalStorageTechnology)
166: lResult = new RelationalStorageTechnologyUserObject(
167: (RelationalStorageTechnology) pElement);
168: else if (pElement instanceof ReportOutputEntity)
169: lResult = new ReportEntityUserObject(
170: (ReportOutputEntity) pElement);
171: else if (pElement instanceof ReportInputField)
172: lResult = new ReportInputFieldUserObject(
173: (ReportInputField) pElement);
174: else if (pElement instanceof ReportOutputField)
175: lResult = new ReportOutputFieldUserObject(
176: (ReportOutputField) pElement);
177: else if (pElement instanceof Report)
178: lResult = new ReportUserObject((Report) pElement);
179: else if (pElement instanceof SelectorInputField)
180: lResult = new SelectorInputFieldUserObject(
181: (SelectorInputField) pElement);
182: else if (pElement instanceof Selector)
183: lResult = new SelectorUserObject((Selector) pElement);
184: else if (pElement instanceof ServiceImplementation)
185: lResult = new ServiceImplementationUserObject(
186: (ServiceImplementation) pElement);
187: else if (pElement instanceof Servicemodule)
188: lResult = new ServicemoduleUserObject(
189: (Servicemodule) pElement);
190: else if (pElement instanceof Service)
191: lResult = new ServiceUserObject((Service) pElement);
192: else if (pElement instanceof State)
193: lResult = new StateUserObject((State) pElement);
194: else if (pElement instanceof StateMachine)
195: lResult = new StateMachineUserObject(
196: (StateMachine) pElement);
197: else if (pElement instanceof StructureField)
198: lResult = new StructureFieldUserObject(
199: (StructureField) pElement);
200: else if (pElement instanceof Structure)
201: lResult = new StructureUserObject((Structure) pElement);
202: else if (pElement instanceof System)
203: lResult = new SystemUserObject((System) pElement);
204: else if (pElement instanceof SystemDependency)
205: lResult = new SystemDependencyUserObject(
206: (SystemDependency) pElement);
207: else if (pElement instanceof Transition)
208: lResult = new TransitionUserObject(
209: (Transition) pElement);
210: else if (pElement instanceof TechnologyLibrary)
211: lResult = new TechLibUserObject(
212: (TechnologyLibrary) pElement);
213: else if (pElement instanceof TypeTemplate)
214: lResult = new TypeTemplateUserObject(
215: (TypeTemplate) pElement);
216: else if (pElement instanceof DomainEntitiesDiagram)
217: lResult = new DomainEntitiesDiagramUserObject(
218: (DomainEntitiesDiagram) pElement);
219: else if (pElement instanceof EnterpriseSystemsDiagram)
220: lResult = new EnterpriseSystemsDiagramUserObject(
221: (EnterpriseSystemsDiagram) pElement);
222: else if (pElement instanceof ServicemoduleStructuresDiagram)
223: lResult = new ServicemoduleStructuresDiagramUserObject(
224: (ServicemoduleStructuresDiagram) pElement);
225: else if (pElement instanceof EntityStateDiagram)
226: lResult = new EntityStateDiagramUserObject(
227: (EntityStateDiagram) pElement);
228: else if (pElement instanceof UsageSpecification)
229: lResult = new UsageSpecificationUserObject(
230: (UsageSpecification) pElement);
231: else if (pElement instanceof com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemusagemodel.Namespace)
232: lResult = new AbstractNamespaceUserObject(
233: (com.metaboss.sdlctools.models.metabossmodel.enterprisemodel.systemusagemodel.Namespace) pElement);
234: else if (pElement instanceof Actor)
235: lResult = new ActorsUserObject((Actor) pElement);
236: else if (pElement instanceof UseCase)
237: lResult = new UseCaseUserObject((UseCase) pElement);
238: else if (pElement instanceof SystemUseCasesDiagram)
239: lResult = new SystemUseCasesDiagramUserObject(
240: (SystemUseCasesDiagram) pElement);
241: else if (pElement instanceof EventSubscription)
242: lResult = new EventSubscriptionUserObject(
243: (EventSubscription) pElement);
244: else if (pElement instanceof Event)
245: lResult = new EventUserObject((Event) pElement);
246: else if (pElement instanceof EventDataField)
247: lResult = new EventDataFieldUserObject(
248: (EventDataField) pElement);
249: else if (pElement instanceof EventMessageField)
250: lResult = new EventMessageFieldUserObject(
251: (EventMessageField) pElement);
252: else if (pElement instanceof EventSubscriptionOperation)
253: lResult = new EventSubscriptionOperationUserObject(
254: (EventSubscriptionOperation) pElement);
255: }
256: return lResult;
257: }
258: }
|