class KewTypeBoServiceImpl implements KewTypeRepositoryService {

    @Override
    public void createKewTypeAttribute(KewTypeAttribute kewTypeAttribute) {
        if (kewTypeAttribute == null){
            throw new RiceIllegalArgumentException("kewTypeAttribute is null");
        }

        KewTypeAttributeBo existing = dataObjectService.find(KewTypeAttributeBo.class, kewTypeAttribute);

        if (null != existing && kewTypeAttribute.getTypeId().equals(existing.getTypeId()) &&
                kewTypeAttribute.getAttributeDefinitionId().equals(existing.getAttributeDefinitionId())) {

            throw new RiceIllegalStateException("The KEW Type Attribute to create already exists: " + kewTypeAttribute);
        }
        KewTypeBo kewType = null;
        if (kewTypeAttribute.getTypeId() != null) {
            kewType = dataObjectService.find(KewTypeBo.class, kewTypeAttribute.getTypeId());
        }

        dataObjectService.save(KewTypeAttributeBo.from(kewTypeAttribute, kewType));
    }

}