/******************************************************************************* * Copyright (c) 2011, 2013 Formal Mind GmbH and University of Dusseldorf. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Said Salem - initial API and implementation ******************************************************************************/ package org.eclipse.rmf.tests.reqif10.serialization.tc500x; import java.math.BigInteger; import org.eclipse.rmf.reqif10.AttributeDefinition; import org.eclipse.rmf.reqif10.AttributeDefinitionString; import org.eclipse.rmf.reqif10.AttributeValueString; import org.eclipse.rmf.reqif10.DatatypeDefinitionString; import org.eclipse.rmf.reqif10.ReqIF10Factory; import org.eclipse.rmf.reqif10.SpecHierarchy; import org.eclipse.rmf.reqif10.SpecObject; import org.eclipse.rmf.reqif10.SpecObjectType; import org.eclipse.rmf.reqif10.Specification; import org.eclipse.rmf.reqif10.SpecificationType; import org.eclipse.rmf.tests.reqif10.serialization.util.SimpleModelBuilder; @SuppressWarnings("nls") public class TC500xS extends SimpleModelBuilder { final static String LAST_CHANGE_STRING = "2014-11-01T12:00:00.000+02:00"; final static String TEST_CASE_ID = "TC500x_S"; // datatypes protected DatatypeDefinitionString datatypeDefinitionString; // SpecObjectTypes SpecObjectType specObjectType1; SpecObjectType specObjectType2; // SpecificationTypes SpecificationType specificationType; // SpecObjects SpecObject specObject1; SpecObject specObject2; SpecObject specObject3; /** * @throws Exception */ public TC500xS() throws Exception { super("ID_TC500x_S", "TC 500x 'Various Tricky ReqIF Constructs'"); } @Override public void createDatatypes() throws Exception { datatypeDefinitionString = ReqIF10Factory.eINSTANCE.createDatatypeDefinitionString(); datatypeDefinitionString.setIdentifier("ID_TC500x_S_DatatypeDefinitionString"); datatypeDefinitionString.setLongName("TC500x_S DatatypeDefinitionString"); datatypeDefinitionString.setLastChange(toDate(LAST_CHANGE_STRING)); datatypeDefinitionString.setMaxLength(new BigInteger("255")); getReqIF().getCoreContent().getDatatypes().add(datatypeDefinitionString); } @Override public void createSpecObjectTypes() throws Exception { specObjectType1 = createSpecObjectType(1, 2); specObjectType2 = createSpecObjectType(2, 1); } public SpecObjectType createSpecObjectType(int id, int adCount) throws Exception { SpecObjectType specObjectType = ReqIF10Factory.eINSTANCE.createSpecObjectType(); specObjectType.setIdentifier("ID_TC500x_S_SpecObjectType" + id); specObjectType.setLongName("TC500x_S SpecObjectType" + id); specObjectType.setLastChange(toDate(LAST_CHANGE_STRING)); for (int i = 1; i <= adCount; i++) { AttributeDefinitionString attributeDefinitionString = ReqIF10Factory.eINSTANCE.createAttributeDefinitionString(); attributeDefinitionString.setIdentifier("ID_TC500x_S_SpecType" + id + "_AD" + i); attributeDefinitionString.setLongName("AD_" + id + "_" + i); attributeDefinitionString.setLastChange(toDate(LAST_CHANGE_STRING)); attributeDefinitionString.setType(datatypeDefinitionString); specObjectType.getSpecAttributes().add(attributeDefinitionString); } getReqIF().getCoreContent().getSpecTypes().add(specObjectType); return specObjectType; } @Override public void createSpecificationTypes() throws Exception { specificationType = ReqIF10Factory.eINSTANCE.createSpecificationType(); specificationType.setIdentifier("ID_TC500x_S_SpecificationType"); specificationType.setLongName("TC500x_S SpecificationType"); specificationType.setLastChange(toDate(LAST_CHANGE_STRING)); getReqIF().getCoreContent().getSpecTypes().add(specificationType); } @Override public void createSpecifications() throws Exception { Specification specification = ReqIF10Factory.eINSTANCE.createSpecification(); specification.setIdentifier("ID_TC500x_S_Specification"); specification.setType(specificationType); specification.setLastChange(toDate(LAST_CHANGE_STRING)); getReqIF().getCoreContent().getSpecifications().add(specification); SpecHierarchy specHierarchy1a = ReqIF10Factory.eINSTANCE.createSpecHierarchy(); specHierarchy1a.setIdentifier("ID_TC500x_S_SpecHierarchy_1a"); specHierarchy1a.setLongName("TC500x_S SpecHierarchy_1a"); specHierarchy1a.setLastChange(toDate(LAST_CHANGE_STRING)); specHierarchy1a.setObject(specObject1); specification.getChildren().add(specHierarchy1a); SpecHierarchy specHierarchy1b = ReqIF10Factory.eINSTANCE.createSpecHierarchy(); specHierarchy1b.setIdentifier("ID_TC500x_S_SpecHierarchy_1b"); specHierarchy1b.setLongName("TC500x_S SpecHierarchy_1b"); specHierarchy1b.setLastChange(toDate(LAST_CHANGE_STRING)); specHierarchy1b.setObject(specObject1); specification.getChildren().add(specHierarchy1b); SpecHierarchy specHierarchy2 = ReqIF10Factory.eINSTANCE.createSpecHierarchy(); specHierarchy2.setIdentifier("ID_TC500x_S_SpecHierarchy_2"); specHierarchy2.setLongName("TC500x_S SpecHierarchy_2"); specHierarchy2.setLastChange(toDate(LAST_CHANGE_STRING)); specHierarchy2.setObject(specObject2); specification.getChildren().add(specHierarchy2); } /** * creates instances of the following metamodel classes: * <ul> * <li>SpecObject</li> * <li>AlternativeID</li> * <li>AttributeValueBoolean</li> * <li>AttributeValueInteger</li> * <li>AttributeValueString</li> * <li>AttributeValueReal</li> * <li>AttributeValueDate</li> * <li>AttributeValueEnumeration</li> * </ul> * * @throws Exception */ @Override public void createSpecObjects() throws Exception { specObject1 = createSpecObject(1, specObjectType1); specObject2 = createSpecObject(2, specObjectType2); specObject3 = createSpecObject(3, specObjectType1); } public SpecObject createSpecObject(int id, SpecObjectType type) throws Exception { SpecObject specObject = ReqIF10Factory.eINSTANCE.createSpecObject(); specObject.setDesc("description"); specObject.setIdentifier("ID_TC500x_S_SpecObject_" + id); specObject.setLastChange(toDate(LAST_CHANGE_STRING)); specObject.setLongName("TC500x_S SpecObject_" + id); specObject.setType(type); for (AttributeDefinition ad : type.getSpecAttributes()) { AttributeValueString av = ReqIF10Factory.eINSTANCE.createAttributeValueString(); av.setDefinition((AttributeDefinitionString) ad); av.setTheValue("SO" + id + ": Value for " + ad.getIdentifier()); specObject.getValues().add(av); getReqIF().getCoreContent().getSpecObjects().add(specObject); } return specObject; } }