private TypeDefinition GenericComponentDefinition(string typeDefName, string typeDefVersion, string typeDefPackage, string packageName, string packageVersion, KevoreeFactory kevoreeFactory, ContainerRoot containerRoot, DeployUnit typedefinedObject) { /* création de la deployUnit */ org.kevoree.DeployUnit du = DeployUnitInit(packageName, packageVersion, kevoreeFactory); /* chargement des informations génériques à toutes les type defition */ var typeDef = InitTypeDefAndPackage(typeDefName, typeDefVersion, typeDefPackage, du, containerRoot, kevoreeFactory, typedefinedObject); typeDef.setAbstract(Boolean.FALSE); typeDef.addDeployUnits(du); return typeDef; }
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 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 CompleteNodeTypeDefinition(DeployUnit component, NodeTypeImpl type, KevoreeFactory factory) { CompleteComponentTypeDefinitionParams(component, type, factory); }
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); } }
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 CompleteComponentTypeDefinition(DeployUnit component, ComponentTypeImpl type, KevoreeFactory factory) { CompleteComponentTypeDefinitionOutputs(component, type, factory); CompleteComponentTypeDefinitionParams(component, type, factory); CompleteComponentTypeDefinitionInput(component, type, factory); }
private static org.kevoree.DeployUnit DeployUnitInit(string packageName, string packageVersion, KevoreeFactory kevoreeFactory) { org.kevoree.DeployUnit du = kevoreeFactory.createDeployUnit(); var platform = kevoreeFactory.createValue(); platform.setName("platform"); platform.setValue("dotnet"); du.addFilters(platform); // on garde le même nom et le même numéro de version que ceux du nuget du.setName(packageName); du.setVersion(packageVersion); return du; }
private static DictionaryAttribute CompleteComponentTypeDefinitionParamField(TypeDefinition type, KevoreeFactory factory, FieldInfo fieldInfo) { var fieldType = fieldInfo.FieldType; var name = fieldInfo.Name; var paramAttribute = ((Param)fieldInfo.GetCustomAttribute(typeof(Param))); return CompleteComponentTypeDefinitionParam(type, factory, fieldType, name, paramAttribute); }
/** * Defined a dictionnary attribute for a method or field annotated with a Param attribute */ private static DictionaryAttribute CompleteComponentTypeDefinitionParam(TypeDefinition typeDef, KevoreeFactory factory, Type type, string name, Param paramAttribute) { DataType dataType = GetDatatypeByType(type); DictionaryAttribute dicAtt = factory.createDictionaryAttribute(); if (typeDef.getDictionaryType() == null) { typeDef.setDictionaryType(factory.createDictionaryType()); } dicAtt.setName(name); dicAtt.setDatatype(dataType); var opt = paramAttribute.Optional; var fragmentDependent = paramAttribute.FragmentDependent; var defaultValue = paramAttribute.DefaultValue; dicAtt.setOptional(opt ? Boolean.TRUE : Boolean.FALSE); dicAtt.setFragmentDependant(fragmentDependent ? Boolean.TRUE : Boolean.FALSE); dicAtt.setDefaultValue(defaultValue); return dicAtt; }
private static PortTypeRef CompleteComponentTypeDefinitionOutput(DeployUnit component, KevoreeFactory factory, FieldInfo fieldInfo) { if (fieldInfo.FieldType != typeof(Port)) { throw new TypeDefinitionException("Class=" + component + ", Field=" + fieldInfo + ", annotated with Outbut but type is not Port"); } PortTypeRef requiredPortRef = factory.createPortTypeRef(); requiredPortRef.setName(fieldInfo.Name); System.Boolean opt = ((Output)fieldInfo.GetCustomAttribute(typeof(Output))).Optional; requiredPortRef.setOptional(opt ? Boolean.TRUE : Boolean.FALSE); return requiredPortRef; }