protected boolean isTypeOf(Class<?> beanType){ if(null != type && type.equals(beanType)) { return true; } for(TypeDefinition td : additionalTypeDefs) { if(td.getType().equals(beanType)) { return true; } } return false; }
protected void addNotRepeatAdditionalTypeDef(BeanDefinitionBase bd, Class<?> cls){ for(TypeDefinition def : bd.getAdditionalTypeDefs()){ if(def.getType() == cls){ return; } } TypeDefinitionBase def = new TypeDefinitionBase(); def.setType(cls); bd.addAdditionalTypeDef(def); } }
protected void parseAdditionalTypeDef(BeanDefinitionBase bd,Class<?> cls,Bean a){ if(a.additionalTypeDef() != null && a.additionalTypeDef().length > 0){ typeEach: for(Class<?> additional : a.additionalTypeDef()){ for(TypeDefinition def : bd.getAdditionalTypeDefs()){ if(def.getType() == additional){ continue typeEach; } } if(!additional.isAssignableFrom(cls)){ throw new BeanDefinitionException(additional.getName() + " is not assignable from " + cls.getName()); } TypeDefinitionBase def = new TypeDefinitionBase(); def.setType(additional); bd.addAdditionalTypeDef(def); } } }
Class<?> beanType = type.getType(); if(existsBeanDefinition != null){ Optional<TypeDefinition> op = existsBeanDefinition.getAdditionalTypeDefs().stream() .filter(td -> td.getType().equals(type.getType())).findAny(); TypeDefinition existTd = op.orElse(existsBeanDefinition); if(null != existsBeanDefinition && existsBeanDefinition != NULL_BD && !existsBeanDefinition.isDefaultOverride()){ Optional<TypeDefinition> op = existsBeanDefinition.getAdditionalTypeDefs().stream() .filter(td -> td.getType().equals(type.getType())).findAny(); TypeDefinition existTd = op.orElse(existsBeanDefinition);