private List<IArc> generateArcsInstancesCase11( Collection<INode> sourcesNodes, Collection<INode> targetsNodes, AssociationDefinition associationDefinition, Collection<AssociationDefinition> associations, Collection<IArc> generatedArcs) { List<IArc> arcsInstances = new ArrayList<IArc>(); if (numberOfOutputArcs > 0) { while (!sourcesNodes.isEmpty() && !targetsNodes.isEmpty()) { INode source = RandomMethods.selectRandomlyNode(sourcesNodes); INode target = RandomMethods.selectRandomlyNode(targetsNodes); IArc arc = createRandomlyArc(source, target, associationDefinition); AssociationDefinition invAssoc = generatorServices.searchInverseAssoc( source, target, associationDefinition, associations); if (invAssoc != null) { IArc invArc = generatorServices.getInverseGeneratedArc(source, target, invAssoc, generatedArcs); if (invArc != null) { arc = null; } } if (arc != null) { arcsInstances.add(arc); } sourcesNodes.remove(source); targetsNodes.remove(target); } } return arcsInstances; }
public Map<PropertyDefinition, Object> generateDatasProperties( ClassDefinition type, Collection<PropertyDefinition> properties) throws Exception { Map<PropertyDefinition, Object> datasProperties = new HashMap<PropertyDefinition, Object>(); Collection<PropertyDefinition> unicityProperties = generatorServices.getUnicityProperties(type, properties); Collection<PropertyDefinition> tempProperties = new ArrayList<PropertyDefinition>(); tempProperties.addAll(properties); tempProperties.removeAll(unicityProperties); for (PropertyDefinition propertyDefinition : tempProperties) { if (!propertyDefinition.getName().getNamespaceURI().contains("alfresco")) { startAttributeIndex = 0; datasProperties.put(propertyDefinition, generateDatasProperty(propertyDefinition)); } } if (unicityProperties.size() > 0) { startAttributeIndex = savedStartIndexAttribute.intValue(); Map<PropertyDefinition, Object> dataUnicityProperties = generateDataForUnicityProperties(type, unicityProperties); if (dataUnicityProperties.size() > 0) { datasProperties.putAll(dataUnicityProperties); } } return datasProperties; }
public boolean generateArcsInstances(IStructure structure) throws Exception { List<IArc> arcsInstances = new ArrayList<IArc>(); Collection<AssociationDefinition> associations = ((AlfrescoModelStructure) structure).getAssociations(); for (AssociationDefinition associationDefinition : associations) { List<IArc> arcsInstancesByAssociation = new ArrayList<IArc>(); ClassDefinition sourceType = associationDefinition.getSourceClass(); Collection<INode> sourcesNodes = generatorServices.getGeneratedNodesByType(sourceType); boolean sourceMultiplicity = associationDefinition.isSourceMany(); ClassDefinition targetType = associationDefinition.getTargetClass(); Collection<INode> targetsNodes = generatorServices.getGeneratedNodesByType(targetType); boolean targetMultiplicity = associationDefinition.isTargetMany(); if (!sourcesNodes.isEmpty() && !targetsNodes.isEmpty()) { if (!sourceMultiplicity && !targetMultiplicity) { arcsInstancesByAssociation = generateArcsInstancesCase11( sourcesNodes, targetsNodes, associationDefinition, associations, arcsInstances); } else if (!sourceMultiplicity && targetMultiplicity) { arcsInstancesByAssociation = generateArcsInstancesCase1N( sourcesNodes, targetsNodes, associationDefinition, associations, arcsInstances); } else if (sourceMultiplicity && !targetMultiplicity) { arcsInstancesByAssociation = generateArcsInstancesCaseN1( sourcesNodes, targetsNodes, associationDefinition, associations, arcsInstances); } else if (sourceMultiplicity && targetMultiplicity) { arcsInstancesByAssociation = generateArcsInstancesCaseNN(sourcesNodes, targetsNodes, associationDefinition); } arcsInstances.addAll(arcsInstancesByAssociation); } } ((AlfrescoModelData) alfrescoModelDatas).setGeneratedAssociationsInstances(arcsInstances); return true; }
public boolean generateNodesInstances(IStructure structure) throws Exception { List<INode> nodesInstances = new ArrayList<INode>(); Collection<ClassDefinition> createdTypes = new ArrayList<ClassDefinition>(); Collection<ClassDefinition> types = ((AlfrescoModelStructure) structure).getTypes(); Collection<AssociationDefinition> compositions = generatorServices.extractCompositions( ((AlfrescoModelStructure) structure).getAssociations()); for (int numOfNodes = 0; numOfNodes < numberOfNodes; numOfNodes++) { ClassDefinition type = RandomMethods.selectRandomlyType(types); createdTypes.add(type); } Map<AssociationDefinition, Collection<ClassDefinition>> sourcesTypesOfCompositions = generatorServices.getSourcesTypesOfCompositions(createdTypes, compositions); Collection<ClassDefinition> deletedTargetsTypes = generatorServices.deleteTargetsTypesOfNotCreatedTargetsTypesOfCompositions( sourcesTypesOfCompositions, createdTypes); createdTypes.removeAll(deletedTargetsTypes); for (ClassDefinition type : createdTypes) { indexType.put(type, Integer.valueOf(0)); } for (ClassDefinition type : createdTypes) { generatorServices.getSerializedDataFromFile(); generatorServices.initializeUnicityVariables(createdTypes, type); nodesInstances.add(((Instance) instance).instanciation(type)); Integer newValue = Integer.valueOf(indexType.get(type).intValue() + 1); indexType.put(type, newValue); generatorServices.serializeData(); } ((AlfrescoModelData) alfrescoModelDatas).setGeneratedTypesInstances(nodesInstances); // Reinitialization because beans still exist until Alfresco be shutdown generatorServices.reInitialization(); return true; }