private TypeDefinition InitTypeDefAndPackage(string typeDefName, string typeDefVersion, string typeDefPackage, org.kevoree.DeployUnit du, ContainerRoot root, KevoreeFactory factory, DeployUnit typedefinedObject) { var packages = Regex.Split(typeDefPackage, "\\."); Package pack = null; foreach (string t in packages) { if (pack == null) { pack = root.findPackagesByID(t); if (pack == null) { pack = (Package)factory.createPackage().withName(t.ToLower()); root.addPackages(pack); } } else { var packNew = pack.findPackagesByID(t); if (packNew == null) { packNew = (Package)factory.createPackage().withName(t.ToLower()); pack.addPackages(packNew); } pack = packNew; } } var foundTD = pack.findTypeDefinitionsByNameVersion(typeDefName, typeDefVersion); if (foundTD != null) { return foundTD; } var typeDefinitionType = _annotationHelper.GetTypeDefinition(typedefinedObject.GetType(), EXPECTED_TYPES); var td = (TypeDefinition)factory.create(getModelTypeName(typeDefinitionType)); td.setVersion(typeDefVersion); td.setName(typeDefName); td.addDeployUnits(du); pack.addTypeDefinitions(td); pack.addDeployUnits(du); return td; }
private void CompleteComponentTypeDefinitionOutputs(DeployUnit component, ComponentTypeImpl type, KevoreeFactory factory) { var lstOutputFields = _annotationHelper.filterFieldsByAttribute(component.GetType(), typeof(Output)); foreach (FieldInfo fieldInfo in lstOutputFields) { PortTypeRef requiredPortRef = CompleteComponentTypeDefinitionOutput(component, factory, fieldInfo); type.addRequired(requiredPortRef); } }
private void CompleteComponentTypeDefinitionParams(DeployUnit component, TypeDefinition type, KevoreeFactory factory) { var lstOutputFields = _annotationHelper.filterFieldsByAttribute(component.GetType(), typeof(Param)); foreach (FieldInfo fieldInfo in lstOutputFields) { DictionaryAttribute dicAtt = CompleteComponentTypeDefinitionParamField(type, factory, fieldInfo); type.getDictionaryType().addAttributes(dicAtt); } }
private void CompleteComponentTypeDefinitionInput(DeployUnit component, ComponentTypeImpl type, KevoreeFactory factory) { var lstMethodsInfos = _annotationHelper.filterMethodsByAttribute(component.GetType(), typeof(Input)); foreach (MethodInfo methodInfo in lstMethodsInfos) { PortTypeRef providedPortRef = factory.createPortTypeRef(); providedPortRef.setName(methodInfo.Name); var optional = ((Input)methodInfo.GetCustomAttribute(typeof(Input))).Optional ? Boolean.TRUE : Boolean.FALSE; providedPortRef.setOptional(optional); type.addProvided(providedPortRef); } }